La solución de Git "repository separado del tree de trabajo" no funciona en Windows

Ver la respuesta que he vinculado a esta pregunta:

http://sofes.miximages.com/a/8603156/1445967

No pude hacer que esto funcione en absoluto con el último Git para Windows. (Windows 7 x64)

Usé 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/ 

Entonces probé:

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

Así que probé algo ligeramente diferente, gracias a la forma en que se almacenan los paths de 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/ 

Esto es copyr y pegar literalmente, excepto que cambié mi nombre de usuario y un único nombre de directory a <worktree> para SO.

Luego probé lo siguiente:

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

Luego miré dentro /c/dev/gitrepo/repo.git/config y vi esto:

 worktree = d:/<worktree> 

Tal vez esto no funcionará con la notación de ruta de Windows. Entonces lo cambié:

 worktree = /d/<worktree> 

Todavía sin suerte. ¿Es lo que bash hacer bajo git para Windows?

El único progreso que he hecho en esta cuestión es el descubrimiento de que en la estación de trabajo que estaba usando, el command SUBST se usó para crear la unidad D. Es decir, C y D son realmente la misma unidad física.

SUBST no parece romper completamente a Git sin embargo. Tengo el proyecto en la unidad D y el git repo en un directory completamente diferente en la unidad D y todo funciona.

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

Entonces, la mejor respuesta que tengo es una solución, en la que aconsejo: en Windows puede haber un problema:

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

Pero cualquiera que sea el caso, el trabajo en torno es uno o ambos de los siguientes:

 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