2011-01-31 11 views
9

Mam dwie różne gałęzie tego samego oprogramowania, nad którym pracuję każdego dnia. Jednak za każdym razem, gdy wybieram drugą gałąź, mój proces kompilacji może zająć nawet godzinę. Aby rozwiązać ten problem, właśnie raz wyewidencjonowałem projekt dla każdego oddziału w dwóch osobnych folderach.Korzystając z git, przenosisz niektóre niezatwierdzone zmiany z jednej gałęzi do drugiej w innym folderze?

Zrobiłem trochę pracy w jednym oddziale, i zdałem sobie sprawę przed tym, jak znalazłem się w niewłaściwym folderze, a więc w niewłaściwym oddziale. Jak mogę przenieść pracę, którą wykonałem na tej gałęzi, do drugiej gałęzi, najlepiej bez tworzenia zatwierdzenia (jeśli jest to możliwe)?

Odpowiedz

19

W katalogu ze zmianami, zrobić:

 
$ git diff > patch 

cd do innego katalogu i wykonaj:

 
git apply /path/to/patch 
+1

To powinno zadziałać, chociaż mogę go nieco zmniejszyć. 'cd project2 && (cd ../project1 && git diff) | git apply ". Nie ma potrzeby zapisywania pliku łatki na dysku. –

+1

Dzięki, zadziałało. Użyłem 'git diff> patch',' git reset --hard', następnie przenieśliśmy do właściwej gałęzi i 'git apply patch'. – thameera

6

Cóż, nie można również budować drugą gałąź ..

  1. Dokonaj zmiany, nie udostępniaj
  2. Przełącz na inny oddział
  3. commit (nie budują)
  4. Wracaj

Oczywiście, działa to tylko jeśli można pozwolić sobie popełnić bez budowania (uzasadnione w niektórych scenariuszach).

+0

To rozwiązanie mniej podatne na błędy niż użycie diff/apply imo – Trindaz

Powiązane problemy