configurando el tree de trabajo de cada repository desnudo

Como puede ver a continuación, tengo que configurar el tree de trabajo de un repository simple:

cd barerepo git status fatal: This operation must be run in a work tree git --work-tree=/var/www/mywork/ status # On branch master nothing to commit (working directory clean) 

¿Cómo configuro el tree de trabajo para ese repository para que no tenga que especificarlo cada vez?

Traté de modificar barerepo/config con esto, pero no funciona.

 [core] repositoryformatversion = 0 filemode = true bare = true worktree = /var/www/mywork 

Los repos sin formatting no deben tener un tree de trabajo, por lo que git imprime el post de error "fatal: core.bare y core.worktree no tiene sentido". Por lo tanto, debe establecer bare = false en el file de configuration del repository.

 user@host:~$ cd barerepo user@host:~/barerepo$ git config --bool core.bare false user@host:~/barerepo$ git config --path core.worktree /var/www/mywork 

Sin embargo, si barerepo no existía anteriormente, debe usar este command en su lugar:

 git init --separate-git-dir=. /var/www/mywork 

Este command también creará un file .git en el tree de trabajo que apunta al dir de git:

 gitdir: /home/user/barerepo 

Tenga en count que la solución propuesta (2012, pre Git 2.5 que se lanzará en julio de 2015) no funcionaría directamente con el command git config .
Seguiría muriendo con un:

 fatal: core.bare and core.worktree do not make sense. 

Eso es lo que abordará Git 2.5 (julio de 2015):

Ver commit fada767 (29 de mayo de 2015) por Jeff King ( peff ) .
(Fusionada por Junio ​​C Hamano – gitster – in commit 103b6f9 , 16 de junio de 2015)

setup_git_directory : delay core.bare / core.worktree errors

Si se core.bare tanto core.bare como core.worktree , nos quejamos de la configuration falsa y de la muerte.
Morir es bueno, ya que evita la ejecución de commands y daños en una configuration potencialmente incorrecta.
Pero morir allí es malo, porque significa que commands que ni siquiera se preocupan por el tree de trabajo no se pueden ejecutar.
Esto puede dificultar la reparación de la situación :

  [setup] $ git config core.bare true $ git config core.worktree /some/path [OK, expected.] $ git status fatal: core.bare and core.worktree do not make sense [Hrm...] $ git config --unset core.worktree fatal: core.bare and core.worktree do not make sense [Nope...] $ git config --edit fatal: core.bare and core.worktree do not make sense [Gaaah.] $ git help config fatal: core.bare and core.worktree do not make sense 

En su lugar, emitamos una advertencia sobre la configuration falsa cuando la notamos (es decir, para todos los commands), pero solo muere cuando el command intenta usar el tree de trabajo (llamando a setup_work_tree).

Entonces ahora obtenemos:

 $ git status warning: core.bare and core.worktree do not make sense fatal: unable to set up work tree using invalid config $ git config --unset core.worktree warning: core.bare and core.worktree do not make sense