环境数据:
我遇到了一个问题,我试图使用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
如果我将状态换成 fetch ,那么一切都会完美无瑕。但是状态拒绝在cmd.exe中运行
如果我运行该命令,在msysGit路径预期中略微修改,它会正确执行。
git --work-tree=/e/Workspaces/company --git-dir=/e/Workspaces/company/.git status
答案 0 :(得分:3)
如果你逃避反斜杠,也许你的第一个会起作用:
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”),则“
relative_path
”函数无法在Windows上正常工作。,例如,当执行:
test-path-utils
时,relative_path "C:/a/b" "D:/x/y"
应返回“C:/a/b
”,但会返回“../../C:/a/b
”,这是错误的。因此,使relative_path荣誉DOS驱动器前缀。