Załóżmy, że mam oddział A
. Teraz tworzę nową gałąź B
z A
i robię kilka zatwierdzeń. Załóżmy, że w tym czasie A
również otrzymał kilka zmian. Czy istnieje sposób na scalenie tych nowych zatwierdzeń z B
tak, aby zatwierdzenia, które wykonałem w B
, były na górze?
Ilustrować:
A -> a1 -> a2 -- B created here -- -> a3 -> a4
B -> a1 -> a2 -> b1 -> b2
Jak połączyć tak, aby B
skończyło się tak
B -> a1 -> a2 -> a3 -> a4 -> b1 -> b2
2 odpowiedzi
Chcesz rebase
, a nie merge
Kiedy na B
, zrób
git rebase A
Nie wpłynie to na gałąź A, ale przepisze najnowszą historię gałęzi B.
Wcześniej miałeś
... -> a1 -> a2 -> a3 -> a4 -> A
\--> b1 -> b2 -> B
A potem będziesz miał:
... -> a1 -> a2 -> a3 -> a4 -> A
\--> b1 -> b2 -> B
Użyj git rebase
Mój typowy workflow, który obejmuje pracę w oddziałach i łączenie w master to:
git status # Make sure I am in the master branch, "git checkout master" if not
git pull
git checkout -b new_branch # New branch called new_branch
# do the work, tests, etc.
git add .
git commit
git checkout master
git pull # Get the very latest master
git checkout my_branch
git rebase master
git checkout master
git merge my_branch
git push master
Podobne pytania
Nowe pytania
git
Git to rozproszony system kontroli wersji typu open source (DVCS). Użyj tego tagu w przypadku pytań związanych z używaniem i przepływami pracy Git. NIE UŻYWAJ tagu [github] w przypadku problemów związanych z Git tylko dlatego, że repozytorium jest hostowane na GitHub. Nie używaj również tego tagu w przypadku ogólnych pytań programistycznych, które dotyczą repozytorium Git.