1

请参阅我链接到此问题的答案:

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

在最新的 Windows 版 Git 下,我根本无法让它工作。(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 下尝试做的事情是否可行?

4

1 回答 1

1

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

不过,SUBST 似乎并没有完全破坏 Git。我在驱动器 D 上有项目,在驱动器 D 上完全不同的目录上有 git repo,一切正常。

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
于 2014-02-26T17:24:27.353 回答