Mam dwie (prywatne) gałęzie funkcji, nad którymi pracuję.
a -- b -- c <-- Master
\ \
\ d -- e <-- Branch1
\
f -- g <-- Branch2
Po krótkiej pracy nad tymi gałęziami odkryłem, że potrzebuję zmian z Branch2 w Branch1. Chciałbym wprowadzić zmiany w gałęzi 2 do gałęzi 1. Chciałbym skończyć z następującymi:
a -- b -- c <-- Master
\
d -- e -- f -- g <-- Branch1
Jestem prawie pewien, że muszę przestawić drugą gałąź na pierwszą, ale nie jestem całkowicie pewien poprawnej składni i której gałęzi powinienem był sprawdzić.
Czy to polecenie da pożądany wynik?
(Branch1)$ git rebase --onto Branch1 Branch2
git
git-rebase
feature-branch
Arjen
źródło
źródło
git rebase -
. patrz moja odpowiedź poniżejOdpowiedzi:
Przełącz na Oddział 2
Zastosuj bieżące zmiany (Oddział 2) nad zmianami Oddział 1, pozostając w Oddział 2:
Co dałoby Ci pożądany wynik w Branch2:
Możesz usunąć Oddział 1.
źródło
git rebase
podczas pozostawania w Oddziale 1 spowoduje przepisanie historii Oddziału 1, aby zmiany w Oddziale 1 zostały zastąpione zmianami skopiowanymi z Oddziału 2. Który spowoduje w dalszej popełnić zamówieniea - b - f - g - c' - d' - e'
.Uwaga: jeśli byłeś włączony
Branch1
, w Git 2.0 (Q2 2014) będziesz mógł pisać:Zobacz zatwierdzenie 4f40740 przez Briana Gesiaka
modocache
:rebase
:-
„short short hand” dla poprzedniej gałęziźródło
Wiem, że poprosiłeś o Rebase, ale wybrałbym zobowiązania, które chciałem przenieść z gałęzi 2 do gałęzi 1. W ten sposób nie musiałbym się martwić, kiedy gałąź została utworzona z master, i miałbym większą kontrolę nad łączeniem.
źródło