Ho trovato un comportamento particolare con git, e posso riprodurlo ogni volta sulla mia macchina.L'uso di `git --git-dir/percorso/su/git pull/percorso/su/altro/bare-git master` non aggiorna automaticamente la struttura di lavoro. Perchè no?
Se ho due repository locali, uno a nudo all'interno della cartella express.git
, e l'altro non-nudo con un albero di lavoro all'interno della espresso cartella, entrambi nella stessa cartella principale, non posso fare il comando git pull ../express.git
dall'interno del express
cartella. Questo aggiorna automaticamente tutto all'interno di express
.
Tuttavia, se faccio funzionare l'ordine git --git-dir /home/cisw470p/stu006/express/.git pull /home/cisw470p/stu006/express.git master
da una posizione non si trova in entrambi i repository git, quindi il repo express
tirerà le modifiche, ma non aggiornerà automaticamente l'albero di lavoro. Devo quindi eseguire git add .
per aggiungere tutte le modifiche e quindi effettuare un altro commit dall'interno di express
e ora tutto è buono.
Perché non ha la versione lunga del comando utilizzando l'opzione --git-dir non aggiornare automaticamente l'albero di lavoro per express
? C'è una ragione per questo, o ho trovato un bug?
EDIT: Ho appena provato di nuovo ma ho modificato un file diverso e ora ha funzionato. Sono completamente perso.
Come ti aspetti che git trovi l'albero di lavoro con il modulo lungo? Hai provato ad aggiungere il '--work-tree = ...' arg? –
All'interno di 'express' c'è l'albero di lavoro insieme alla cartella' .git', come un normale repository. – trusktr
Quando si dà a 'git' un esplicito git-dir, perché ti aspetti che si assuma solo che il genitore della git dir sia un albero di lavoro? Questa potrebbe essere un'ipotesi piuttosto pericolosa in molti casi (in particolare, se la git dir è in realtà un repository nudo) –