git --git-dir无法在windows中运行

时间:2010-12-01 23:38:11

标签: git msysgit

在Git的钩子脚本中,我试图运行这样的命令..

请参阅(git --git-dir not working as expected

git log --name-status --git-dir="C:\Documents and Settings\user\My Documents\Visual Studio 2008\Projects\CMS\.git" --work-tree="C:\Documents and Settings\user\My Documents\Visual Studio 2008\Projects\CMS"

当我运行此命令时,我收到以下错误。

fatal: Not a git repository (or any of the parent directories): .git

我正在使用的命令有什么问题吗?

2 个答案:

答案 0 :(得分:7)

我最近在Mac上遇到过这个问题,我的解决方案是在git子命令之前放置--git-dir和--work-tree指令。

所以,你的命令看起来像这样:

git --git-dir="C:\Documents and Settings\user\My Documents\Visual Studio 2008\Projects\CMS\.git" --work-tree="C:\Documents and Settings\user\My Documents\Visual Studio 2008\Projects\CMS" log --name-status
HTH,它为我做了伎俩。

答案 1 :(得分:2)

由于它是钩子脚本,它可能会在bash会话中使用POSIX paths,而不是Windows路径。

git log --name-status --git-dir='/C/Documents and Settings/user/My Documents/Visual Studio 2008/Projects/CMS/.git' --work-tree='/C/Documents and Settings/user/My Documents/Visual Studio 2008/Projects/CMS'

从DOS会话(如“非挂钩”),路径可能看起来像:

git log --name-status --git-dir='C:/Documents and Settings/user/My Documents/Visual Studio 2008/Projects/CMS/.git' --work-tree='C:/Documents and Settings/user/My Documents/Visual Studio 2008/Projects/CMS'

替代语法(未经测试):"c:\\xxx\\yyy\\..."