2016-01-08 11 views
10

Kürzlich bin ich auf die Meldung gestoßen, dass sich meine Filiale auseinander entwickelt hat. Das war, als ich einen Feature-Zweig machte, ihn in die Ferne schob und ein paar Tage später mit Master eine Rebase machte, als ich anfing, wieder daran zu arbeiten.Git-Zweig hat nach Rebase auseinander gegangen, also warum Rebase?

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

... und wenn im Master ...

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

Aber wenn ich wieder meinen Zweig schieben will, heißt es:

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

ich diese Antwort gefunden in " Git branch diverged after rebase ":

Da Sie bereits den Zweig geschoben hatten, yo Sie sollten in der Quellenverzweigung zusammengeführt haben, anstatt eine Neuausrichtung dagegen durchzuführen.

Frage

Nach this Lesen ich immer noch nicht verstehen, was ich in meinen Flow anders gemacht haben sollte, und warum will ich noch mit git rebase sein. Hoffe jemand kann das erklären, danke!

+0

Was ist mit dem Push-f? erwähnt in Ihrem Link (http://stackoverflow.com/a/26349885/6309) Wenn Sie allein in diesem Zweig arbeiten, können Sie keine Kraft drücken. – VonC

+0

Ich arbeite in einem Team, also denke ich, dass das Überschreiben der Remote-Zweig ist keine gute Idee ... – Amber

+0

Dann keine Rebase für Sie. Nur zusammenführen. – VonC

Antwort

10

Die Idee ist, nur wenn Sie noch nicht geschoben haben, um Ihre lokalen commits wiederholen.

Sobald Sie gedrängt haben (und in einem Team arbeiten), sollten Sie die Verzweigung nicht über master neu erstellen, da sie ihre SHA1 umschreibt und Sie zwingt, den neuen Status der Verzweigung zu erzwingen.

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

eine git merge master in Ihrer Branche zu machen ist hier vorzuziehen: Sie die Konflikte vor Ort beheben, dann können Sie mehr verpflichtet, und eine regelmäßige Push.

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

Mehr unter "What is the difference between merging master into branch and merging branch into master?"

+0

Danke für Ihre Erklärung! Macht es viel klarer :) – Amber

+0

@Gluttton Ja, danke. Ich habe die Antwort bearbeitet, um diesen Tippfehler zu beheben. – VonC