环境数据:
我遇到了一个问题,我试图使用 cmd.exe 中的选项 --work-tree 和 --git-dir 来发出 Git 状态
当我运行以下命令时:
git --work-tree=E:\Workspaces\company --git-dir=E:\Workspaces\company\.git status
我收到以下信息:
fatal: index file open failed: Invalid argument
如果我将 status 替换为 fetch 那么一切都会完美运行。但是状态拒绝在 cmd.exe 中运行
如果我运行命令,在 msysGit 路径预期范围内稍微修改一下,它就会正确执行。
git --work-tree=/e/Workspaces/company --git-dir=/e/Workspaces/company/.git status
如果你转义反斜杠,也许你的第一个会起作用:
git --work-tree=E:\\Workspaces\\company --git-dir=E:\\Workspaces\\company\\.git status
我明白了,试试这个:
git --work-tree="E:\Workspaces\company" --git-dir="E:\Workspaces\company\.git" status
我尝试过这个,它对我有用。我的目录中甚至有空格:-)
这似乎是 1.8.4 中引入的回归,您现在可能必须降级到 1.8.3,直到它得到修复并发布 1.8.5。或者同时使用 bash。
这里有一个参考:https://stackoverflow.com/a/19511402/329928
这是 GitHub 上的问题:
Tvangeste 发现,如果“in”和“prefix”带有 DOS 驱动器前缀(例如“C:/windows”),“
”功能就无法在 Windows 上正常工作。relative_path
例如,当执行:
时,test-path-utils
应该返回“relative_path "C:/a/b" "D:/x/y"
”,但返回“C:/a/b
”,这是错误的。../../C:/a/b
因此使relative_path遵循DOS驱动器前缀。
只需创建一个新文件夹并将文件粘贴到其中 重新添加远程源,它应该可以很好地为您推送