2011-01-31 18 views
9

Ho due rami diversi dello stesso software su cui lavoro tutti i giorni. Tuttavia, ogni volta che eseguo il checkout sull'altro ramo, il processo di creazione può richiedere fino a un'ora. Per risolvere questo, ho appena controllato il progetto una volta per ogni ramo in due cartelle separate.Utilizzando git, come si spostano alcune modifiche non salvate da un ramo a un altro ramo in una cartella diversa?

Ho fatto un po 'di lavoro in un ramo, e ho realizzato prima di commetterlo che ero nella cartella sbagliata, e quindi il ramo sbagliato. Come posso spostare il lavoro che ho fatto su questo ramo, all'altro ramo, preferibilmente senza creare un commit (se ciò è possibile)?

risposta

19

Nella directory con le modifiche, fare:

 
$ git diff > patch 

cd per l'altra directory, e farlo:

 
git apply /path/to/patch 
+1

Questo dovrebbe funzionare, anche se potrebbe ridurlo un po 'di più. 'cd project2 && (cd ../project1 && git diff) | git apply ». Non c'è bisogno di scrivere un file di patch sul disco. –

+1

Grazie, ha funzionato. Ho usato 'git diff> patch',' git reset --hard', quindi spostato sul ramo corretto e 'git apply patch'. – thameera

6

Beh, si può anche non costruire l'altro ramo ..

  1. Apportare la modifica, non eseguire il commit
  2. Passare all'altro ramo
  3. commit (non costruire)
  4. Tornate

Naturalmente, questo funziona solo se si può permettere a voi stessi a commettere senza costruire (ragionevole in alcuni scenari).

+0

Questa soluzione è meno soggetta a errori rispetto all'utilizzo di diff/apply imo – Trindaz

Problemi correlati