Git“独立于工作树的存储库”解决scheme不能在Windows下工作

看到我链接到这个问题的答案:

https://stackoverflow.com/a/8603156/1445967

我根本无法在最新的Git for windows下使用它。 (Windows 7 x64)

我用git bash:

<my username> /d/<worktree> $ git --git-dir=/c/dev/gitrepo/repo.git --work-tree=. init && echo "gitdir: /c/dev/gitrepo/repo.git" > .git Initialized empty Git repository in c:/dev/gitrepo/repo.git/ 

然后我试着:

 <my username> /d/<worktree> $ git status fatal: Not a git repository: /c/dev/gitrepo/repo.git 

所以我尝试了一些稍微不同的,感谢窗口path被存储的方式…

 <my username> /d/<worktree> $ git --git-dir=/c/dev/gitrepo/repo.git --work-tree=/d/<worktree> init && echo "gitdir: /c/dev/gitrepo/repo.git" > .git Initialized empty Git repository in c:/dev/gitrepo/repo.git/ 

这是复制粘贴逐字,除了我改变我的用户名和一个单一的目录名称为<worktree> SO。

然后我尝试了以下内容:

 <my username> /d/<worktree> $ git status fatal: Not a git repository: /c/dev/gitrepo/repo.git 

然后我看了看/c/dev/gitrepo/repo.git/config,我看到了这个:

 worktree = d:/<worktree> 

也许这不会与Windowspath表示法。 所以我改变了它:

 worktree = /d/<worktree> 

仍然没有运气。 是我正在尝试做的可能在Windows下的Git?

我在这个问题上取得的唯一进展是发现在我使用的工作站上,SUBST命令被用来创建驱动器D.也就是说,C和D实际上是相同的物理驱动器。

SUBST似乎并没有完全打破Git。 我有驱动器D上的项目和git仓库上的完全不同的目录,一切正常。

 username@host /d/ProjectName (branch) $ cat .git gitdir: d:\gitrepo\ProjectName.git 

所以我最好的答案是解决方法,我建议:在Windows中可能有一个问题:

 1. If the repo and working dir are on different drives 2. If (1) is true and you use SUBST 

但无论哪种情况,解决方法都是以下一种或两种:

 1. put everything on the same drive letter. It works even if that drive is a 'subst' drive. 2. Use the windows "d:\" notation in the .git file