git 无法索引存储库之外的文件(权限被拒绝)

问题描述 投票:0回答:1

我一直致力于设置一个 Windows 任务,以使用域用户帐户自动将共享网络驱动器文件夹中的所有项目推送到在线存储库中(更多信息此处)。我已在此共享网络驱动器文件夹之外设置了本地 git 存储库,以防止其他用户运行 git 命令或弄乱存储库设置。当我的自动化任务从存储库外部添加文件时,我遇到了这个错误:

error: open("Path/to/file/I/want/to/add.txt"): Permission denied
error: unable to index file 'Path/to/file/I/want/to/add.txt'
fatal: adding files failed

这是我的任务配置:

常规选项卡

  • 用户帐户设置为“domainUser”
  • 选择“无论用户是否登录都运行”
  • 选中“以最高权限运行”

“操作”选项卡

  • 操作设置为“启动程序”

在此操作的属性中:

  • 程序/脚本设置为
    C:\Window\System32\cmd.exe
  • 添加参数设置为
    /D /C D:\repo\commit.bat
  • 开始设置为
    D:\repo

条件选项卡

  • 默认检查到位
  • 唤醒计算机以运行此任务已选中

这是任务计划程序运行的bat文件,用于从网络驱动器文件夹上传文件:

git config --global user.name "domainUser"
git config --global user.email "[email protected]"
git config --system --add safe.directory D:/repo
set HOMEDRIVE=C:
set HOMEPATH=\Users\domainUser
cd /D D:\repo
D:\path\to\git.exe --git-dir=C:\repo\.git add --all > log.txt 2>&1
D:\path\to\git.exe --work-tree^=//path/to/network/drive/folder add --all > log.txt 2>&1
D:\path\to\git.exe --git-dir=C:\repo\.git -c user.name="domainUser" -c user.email="[email protected]" commit --author="domainUser<[email protected]>" -m "message" >> log.txt 2>&1
echo Pushing changes... >> log.txt 2>&1
set GIT_TRACE=true
D:\path\to\git.exe --git-dir=C:\repo\.git push origin main >> log.txt 2>&1

domainUser 还从本地存储库上传文件,例如 README.md,并且这些文件不存在“权限被拒绝”问题。这只是外部文件。

请记住,出于安全原因,此信息已被屏蔽。

git batch-file windows-task-scheduler
1个回答
0
投票

权限问题已解决

  • 导航到网络驱动器
  • 打开我需要权限的文件夹
  • 打开文件夹属性窗口
  • 打开安全选项卡
  • 将我的域用户添加到
    Group or user names
    部分
  • 授予我的域用户以下权限:修改、读取和执行、列出文件夹内容以及读取。

感谢大家花时间帮助解决这个问题。

© www.soinside.com 2019 - 2024. All rights reserved.