2012-09-18 5 views
39

Sono un neofita di Git e sto usando il plugin EGit di eclipse per il commit.git stash e git pull

Ho modificato alcuni file e ho nascosto le modifiche, quindi ho eseguito git pull nella riga di comando che ha richiamato tutti gli ultimi commit. Poi ho fatto Apply stashed changes da EGit. Ora ha applicato le mie modifiche e le modifiche apportate dall'ultimo commit dei file nascosti sono state eliminate. Non sono sicuro del motivo per cui non mi ha chiesto di unire i conflitti e di aver sovrascritto le mie modifiche e perso le modifiche ai commit precedenti.

Come ottenere tali modifiche?

+0

Non sembra plausibile. La scorta si applica o porta modifiche non conformi o causa conflitti di unione. Penso che ti sia dimenticato di menzionare qualcosa. Inoltre, puoi ripetere i passaggi, molto probabilmente il tuo stash è ancora nella lista, usa 'git stash list' per mostrarlo. – kan

risposta

103

Quando si dispone di modifiche sul tuo copia di lavoro, da linea di comando fare:

git stash 

Ciò riporre le modifiche e svuotare la relazione sullo stato

git pull 

Questo tirerà le modifiche dal ramo di monte. Assicurati che il forward sia veloce nel rapporto. Se non lo fa, si sono probabilmente facendo un merge non intenzionale

git stash pop 

Ciò applicare le modifiche nascosto torna alla copia di lavoro e rimuovere le modifiche da scorta a meno che non si dispone di conflitti. In caso di conflitto, rimarranno nella riserva in modo da poter ricominciare da capo, se necessario.

se hai bisogno di vedere ciò che è nella vostra scorta

git stash list 
+3

c'è la possibilità di farlo in un unico comando? –

+0

@java_newbie, se vuoi farlo con stash e tira no, non c'è modo. Ma puoi ottenere lo stesso risultato con rebase. Il comando 'git rebase origin/' dovrebbe fare la stessa cosa. – yilmazhuseyin

+3

Penso che questo lo farà: 'git stash && git pull && git stash pop' –