2013-06-12 17 views
21

Chcę zrobić coś podobnego do git rebase, ale bez zwijania równoległych zatwierdzeń.git stosuje zmiany od jednego zatwierdzenia do innego oddziału

Powiedzmy mam następujące zobowiązuje:

B (bar) 
/
A-C-D (foo) 

Teraz chcę brać zmiany, które wprowadzone do C D w branży foo, i stosuje je do B w barze placówek. tak, że kończy się z następujących czynności:

B-E (bar) 
/
A-C-D (foo) 

W przypadku gdy różnica między zobowiązuje B i E jest równa różnicy między zobowiązuje C i D. Czy to możliwe? Czy istnieje sposób, aby to zrobić bez tworzenia łatki?

Odpowiedz

32

Tak:

git checkout -b mergebranch B 
git cherry-pick D 
0

Jeżeli ostatni popełnić na gałęzi, którą chcesz cherry-pick z (foo w przykładzie) jest scalającej, można wskazać na konkretny popełnić Cherry pick za pomocą git cherry-pick branchname~1, aby uzyskać zatwierdzenie, które było rodzicem scalenia.

Powiązane problemy