¿El directory de estado de git es dependiente?

Espero que esto sea simple y acabo de configurar git de forma extraña, pero no creo que este sea el comportamiento esperado.

Creé un simple repository git

> mkdir tmp > cd tmp > touch this > mkdir that > touch that/what > git init Initialized empty Git repository in /home/.../tmp/.git/ > git add this that > git commit -a -m "initial commit" [master (root-commit) 679f2ae] initial commit 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 that/what create mode 100644 this 

Luego hago un estado en el repository git recién creado

 > git status # On branch master nothing to commit, working directory clean 

Nada necesita ser comprometido, como se esperaba. Sin embargo, cuando escribo en el directory "eso" y hago un estado obtengo lo siguiente:

 > cd that > git status # On branch master # Changes not staged for commit: # (use "git add/rm <file>..." to update what will be committed) # (use "git checkout -- <file>..." to discard changes in working directory) # # deleted: that/what # deleted: this # # Untracked files: # (use "git add <file>..." to include in what will be committed) # # what no changes added to commit (use "git add" and/or "git commit -a") 

Mi pregunta es por qué git piensa que todo se borra / no se rastrea cuando mi directory de trabajo actual no es la raíz del repository. No pensé que ese fuera el comportamiento esperado.

No es comportamiento esperado. Repetí tu cadena de commands y funciona como se esperaba. Verificaría si no tienes ningún directory .git extraño en tu directory 'that' o alguna extraña configuration ~ / .gitconfig.

Gracias por toda la ayuda. Creo que ya lo descubrí. Como parte de otro script para mi ps1 var, estoy configurando un env var "GIT_DIR" (es para agregar la twig git actual a mi post, muy útil). Inicialmente, pensé que había comprobado que GIT_DIR no estaba siendo utilizado por git; al less no está configurado de manera pnetworkingeterminada, pero aparentemente está siendo utilizado en alguna capacidad.

Todavía no está claro para mí cómo / por qué git usa este env var ya que el comportamiento que estoy viendo no es muy intuitivo, puedo investigarlo un poco más. Mi secuencia de commands establece GIT_DIR en el directory de nivel superior que contiene … /. Git. Entonces, aparentemente, si estoy en un directory diferente, git hace una diferencia de mi directory actual con el directory * GIT_DIR *. No veo por qué eso sería útil.

De todos modos, cambiar el env var a MY_GIT_DIR en lugar de usar GIT_DIR pareció solucionar el problema.

tengo que amar env vars …