2017-06-29 3 views
-1

In der Abbildung unten haben beide, der gelbe und der violette Zweig, den Zweig abgezweigt und wieder in den Masterzweig integriert. Ich kann die Zweige nicht vollständig zusammenführen.Was bedeutet eine Verzweigung, die in Git vor einem anderen Push zusammengeführt wurde, in SourceTree

Ist es wegen der Pushs, die ich in rot markiert? Vielleicht liegt es daran, dass sie dahinter stecken? Nehmen wir den lila Zweig zum Beispiel, ich denke, was passiert ist, war der violette Zweig der ursprüngliche Master, war aber nicht in meinem Repository. Ich habe vergessen, es herunter zu ziehen, als ich meine "Optimierung" festlegte, so dass es in einen separaten Zweig umgewandelt wurde. Dann wurde der 'Neue Sproc und Tisch' wieder zum Meister gemacht.

Wie behebe ich das?

enter image description here

Antwort

1

Es gibt keine Sortierreihenfolge für zwei Zweige. Wie das Commit Optimization bedeutet nicht vor Commit New sproc and table, weil sie in zwei getrennten Zweigen sind.

Als untere Grafik B bedeutet die Optimization verpflichten Sie markiert und C-G Mittel verpflichtet Changes filter to exclude schemas-New sproc and table:

A---B  master 
\ 
    C---D---E---F---G purple 

Wenn Sie purple Niederlassung in master fusionieren, ändert sich von purple Zweig gelten in master Verzweigung mit einem neuen Festschreiben (wie H steht für Festschreiben Merge branch 'master' of https://bitbucket):

Weitere Informationen über Git Merge, können Sie Branching and Merging in Git Buch beziehen.

+0

Danke für die Erklärung! –

1

Wenn Sie suchen Ihre Geschichte linear sein, dann wollen Sie in vorspulen Verschmelzung suchen. Schauen Sie sich diese other stackoverflow thread an, die in Bezug auf Fast-Forwards geht.

Wenn Sie daran interessiert sind, zurückzugehen und den bestehenden Verlauf zu korrigieren, lassen Sie es mich wissen und ich kann diese Antwort mit Vorschlägen bearbeiten, aber meiner Erfahrung nach ist es eher ein Kopfzerbrechen, die Geschichte des Git zu ändern, als es letztendlich wert ist .

EDIT

es schauen, um etwas mehr, würde ich sagen, dass dies in der Zukunft zu vermeiden, sollten Sie versuchen, git fetch und git pull ausführen, bevor Sie git commit um sicherzustellen, dass Sie die Remote-Zweig verfolgen und haben die neuesten . Wenn nach dem Ziehen Zusammenführungskonflikte auftreten, versuchen Sie am besten, Ihre lokalen Änderungen zu speichern, indem Sie den Pull ausführen und dann Ihre Änderungen gegen die neuesten Änderungen aus der Remote-Verzweigung anwenden.

+0

Vielen Dank! Das erklärt viel. –

Verwandte Themen