Git cambio directory de trabajo

Quiero trabajar con el repository de Git, pero el tree de trabajo debe ser remoto. Por ejemplo: si tengo mi proyecto almacenado dentro de ~/project y project.git almacenado dentro de ~/git/project.git .

Lo que he cambiado trabajando arbol a través de config:

worktree=/Users/myuser/project

Y puedo confirmar y ver diff, pero cuando bash hacer git stash , git stash un error:

fatal: / usr / libexec / git-core / git-stash no se puede utilizar sin un tree de trabajo.

¿Cómo almacenar .git directory .git lejos del tree de trabajo? ¿Y por qué estoy recibiendo este error?

git config --get core.worktree devuelve el directory de trabajo correcto ….

Lo siguiente parece funcionar, ajústese a sus necesidades:

 mkdir git mkdir work git --git-dir git/test --work-tree work/test init mkdir work/test echo -n foo > work/test/foo.txt git --git-dir git/test status git --git-dir git/test add foo.txt git --git-dir git/test commit -m 'commit 1' 

EDITAR: Tenga en count que no tiene que especificar --work-tree después de que el repository se haya inicializado, ya que ese valor se almacena en git/test/config .

También puede hacer un cd en el trabajo / testing y comprometerse desde allí:

 cd work/test echo -n bar > bar.txt git --git-dir ../../git/test status git --git-dir ../../git/test add . git --git-dir ../../git/test commit -m 'commit 2' 

Luego use una ruta absoluta para --git-dir o configure GIT_DIR .

Corrección para el --git-dir indicador de --git-dir :

utilizar:

 git --git-dir=git/test/.git ... 

en lugar de:

 git --git-dir git/test ...