请参阅我与此问题相关的答案:
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
所以我尝试了一些稍微不同的东西,这要归功于windows路径的存储方式......
<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>
也许这不适用于windows路径表示法。所以我改变了它:
worktree = /d/<worktree>
仍然没有运气。我想在Windows的git下做什么呢?
答案 0 :(得分:1)
我在这个问题上取得的唯一进展是发现在我使用的工作站上,SUBST命令用于创建驱动器D.也就是说,C和D实际上是相同的物理驱动器。
SUBST似乎并没有彻底打破Git。我在驱动器D和git repo上的项目在驱动器D上的一个完全不同的目录上,一切正常。
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