2016-01-08 55 views
10

Niedawno natknęłam się na powiadomienie, że mój oddział się rozdzielił. Wtedy właśnie zrobiłem gałąź z funkcjami, odepchnąłem ją na odległość i kilka dni później zrobiłem rebase z mistrzem, kiedy zacząłem nad nią pracować.Oddział Git rozdzielił się po przebiciu, więc po co rebase?

git checkout -b feature-branch 
git push origin feature-branch:feature-branch 

... a gdy w pana ...

git pull origin master 
git checkout feature-branch 
git rebase master 

Ale gdy chcę ponownie wcisnąć mój oddział, to mówi:

On branch feature-branch 
Your branch and 'origin/feature-branch' have diverged, 
and have 67 and 1 different commit each, respectively. 

Znalazłem odpowiedź w " Git branch diverged after rebase ":

Ponieważ już wypchnął oddział, yo Powinieneś połączyć się z gałęzią źródłową , zamiast przekierowywać przeciwko niemu.

Pytanie

Po przeczytaniu this wciąż nie w pełni zrozumieć, co powinno Zrobiłem inaczej w moim przepływu i dlaczego nadal chcę być przy użyciu git rebase. Mam nadzieję, że ktoś może to wyjaśnić, dziękuję!

+0

Co o -f Push? wymienione w twoim linku (http://stackoverflow.com/a/26349885/6309) Jeśli pracujesz sam nad tą gałęzią, nie możesz wymusić pchnięcia. – VonC

+0

Pracuję w zespole, więc myślę, że nadpisanie odległego oddziału nie jest dobrym pomysłem ... – Amber

+0

Nie ma dla ciebie żadnego rebase. Scal tylko. – VonC

Odpowiedz

10

Chodzi o to, aby przegrupować tylko wtedy, gdy jeszcze nie pchnąłeś, aby powtórzyć swój lokalny lokalny zatwierdzeń.

Natychmiast po naciśnięciu (i pracy w zespole) nie powinieneś zmieniać nazwy oddziału na master, ponieważ przepisuje ona swój SHA1, zmuszając cię do wymuszenia nowego stanu gałęzi.

http://rypress.com/tutorials/git/media/5-1.png

Wykonywanie git merge master do swojego oddziału korzystne jest tutaj: rozwiązać konflikty lokalnie, a następnie można bardziej zobowiązuje, a regularne Push.

http://i.stack.imgur.com/wBMwq.png

Zobacz więcej w "What is the difference between merging master into branch and merging branch into master?"

+0

Dzięki za wyjaśnienie! Sprawia, że ​​jest o wiele jaśniejszy :) – Amber

+0

@ Guttutton Tak, dziękuję. Zmieniłem odpowiedź, aby naprawić tę literówkę. – VonC