2012-10-26 10 views
5

Dire che ho un ramo "lavoro" e un ramo "idee" nel mio repository git.Posso aprire un file in un ramo diverso da quello attivo?

Di solito lavoro sul mio file_velociale.cpp nel ramo "lavoro", ma a volte mi piacerebbe aprire allo stesso tempo il file_velous_file.cpp che si trova nel mio ramo "idee".

Non voglio vedere quali sono le differenze tra i due file, ma piuttosto prendere frammenti di codici dal ramo "idee" e copiarli e incollarli nel file nel ramo "lavoro".

È possibile? In caso contrario, posso effettuare il checkout del file in "idee" in "lavoro", ma con un nome diverso?

risposta

7

È possibile utilizzare git show per farlo:

git show ideas:marvelous_file.cpp 

questo mostrerà proprio nel Terminal. Se si vuole che, come un file, solo il tubo in un file, ad esempio:

git show ideas:marvelous_file.cpp > ideas.cpp 
+0

+1 StackOverflow è sempre in fase di apprendimento. – Yamaneko

+0

+1. Speso anni cercando di trovare qualcosa di simile –

+0

grazie ha funzionato! Adoro git, ma a volte sento che certe attività dovrebbero essere rese più immediate :) git checkout -come il comando sarebbe bello (forse posso aggiungere un alias per farlo?) – lucacerone

0

Se si impegnano le modifiche in locale prima, questi passaggi funzionano bene:

git checkout ideas -- path/to/your/file.txt 

catturerà il file che vuoi e sostituisci quello che hai nella tua cartella di lavoro. Si può fare questo per un'intera directory o l'intero albero di lavoro:

git checkout ideas -- . 

catturerà l'intero albero lavoro

git checkou ideas -- dir/with/cool/stuff 

catturerà tutti i contenuti della directory.

Ora è possibile

git reset -p 

gettare sistematicamente via le modifiche che non si desidera. Questo potrebbe essere più facile prendere i frammenti che vuoi se sono già inseriti nei file su cui stai lavorando.

Problemi correlati