2012-03-16 17 views
8

Ho un repository normale in cui sono presenti una struttura di lavoro e una cartella .git nella stessa directory dell'albero di lavoro.Come si usa l'opzione --work-tree con git? Continuo a ricevere un errore

Sto cercando di eseguire un comando git dall'esterno questa posizione con il comando

git --git-dir=/path/to/repo/.git --work-tree=/path/to/repo pull /some/other/repo master 

ma continuo a ricevere l'errore fatal: /usr/libexec/git-core/git-pull cannot be used without a working tree..

Cosa sto sbagliando?

+0

Qual è la tua attuale directory di lavoro? Quale versione di Git stai usando? –

+0

È così: tutti i file (l'albero di lavoro) si trovano all'interno di una cartella come '/ some/repo' e all'interno di questa cartella c'è anche una cartella .git'/some/repo/.git'. Normalmente eseguirò comandi git dall'interno di '/ some/repo'. Ho la versione 1.7.2.3'. – trusktr

risposta

9

Questo è un bug nelle versioni precedenti di Git. Questo problema dovrebbe andare via dopo l'aggiornamento alla versione 1.7.7.2 o successiva.

Da the commit that fixed the bug:

You can't currently run git-pull or git-rebase from outside 
of the work tree, even with GIT_WORK_TREE set, due to an 
overeager require_work_tree function. Commit e2eb527 
documents this problem and provides the infrastructure for a 
fix, but left it to later commits to audit and update 
individual scripts. 

Vedi anche commit e2eb527.