Per essere un po 'più completo, Git lavora con:
- il albero di lavoro (la cui radice dell'essere dove hai fatto un
git init
)
- "percorso del repository Git" (dove c'è un
.git
, che conterrà le revisioni di tutti i file)
GIT_DIR
è una variabile di ambiente, che può essere un percorso assoluto o un percorso relativo alla directory di lavoro corrente.
Se non è definito, il "percorso del repository git" è per default nella directory principale del vostro albero di lavoro (ancora una volta, in cui hai fatto un git init
).
Si può effettivamente eseguire qualsiasi comando Git da qualsiasi luogo dal disco, a condizione di specificare il percorso albero di lavoro e il percorso del repository Git:
git command --git-dir=<path> --work-tree=<path>
Ma se li si esegue in una delle sottodirectory di una Git repository (senza GIT-DIR o percorso dell'albero di lavoro specificato), Git cercherà semplicemente nelle directory corrente e padre fino a quando non troverà un .git
, supponendo che questo sia anche la directory radice dell'albero di lavoro e utilizzi quello .git
come unico contenitore per tutte le revisioni dei tuoi file.
Nota: .git
è anche nascosto in Windows (msysgit).
Si dovrebbe fare un dir /AH
per vederlo.
git 2.9 (June 2016) allows to configure that.
BTW, git commit -a -m 'iniziale' è lo stesso di git commit -am 'iniziale' – math2001