2012-04-12 17 views
7

Ho un repository git da cui voglio fare un pull. Faccio un normale git pull senza problemi. Il problema è che voglio solo una certa directory dal repository. Il mio pensiero era che potrei usare un file .gitignore con una regola come questa:Estrarre solo una directory da un repository git

#Ignore all files 
/
#Except the one I want 
!/temp 

Il problema è questo non funziona. È il modo giusto per farlo o c'è un modo migliore?

+0

btw, per ignorare tutti i file, vorrei andare con '/ *' – c00kiemon5ter

+1

Solo per la cronaca: non è possibile estrarre solo una directory. Fai sempre la ** cronologia **, non i file o le directory. Certo, sei libero di _work_ solo su alcuni file. – fork0

risposta

25

git pull recupera e unisce il ramo remoto.

.gitignore funziona solo localmente e nasconde le voci corrispondenti da mostrare su git status e viene aggiunto all'indice con git add. Non è quello che vuoi.

Quello che si vuole fare è fetch il ramo remoto, e da quello, estrarre il file/dir necessario.

$ git fetch <remote> <branch> 
$ git checkout <remote>/<branch> -- relative/path/to/file/or/dir 

il file/dir dovrebbe ora essere nel ramo e aggiunto all'indice.

+0

Era esattamente ciò di cui avevo bisogno. Grazie mille! – Dan

+0

Dice "Rimuovi" o "remoto" sulla seconda riga? –

+0

@ ing0 grazie, era un errore di battitura;) – c00kiemon5ter

Problemi correlati