Was ist der Unterschied zwischen dem Zusammenführen von Master in Zweig und dem Zusammenführen von Zweig in Master?

9

Ich habe einen Zweig namens master und einen anderen namens dev . Normalerweise mache ich Tests und Verbesserungen an dev , und wenn entschieden wird, ist es in Ordnung, ich füge es in master ein, markiere und veröffentliche dann eine neue Version der Anwendung. Ich habe zwei Fälle von Verschmelzung getroffen:

  1. mische master in dev und
  2. merge dev in master ,

aber ich bin nicht wirklich sicher, wie die beiden anders sind ... Jede Erklärung wäre willkommen.

    
sop 15.10.2014, 13:44
quelle

1 Antwort

19

TL; DR

Der Hauptunterschied liegt darin, wo die Zweige master und dev am Ende zeigen.

Ausführliche Erklärung

Das Zusammenführen eines Zweiges zu einem anderen ist keine symmetrische Operation:

  • Zusammenführung von dev in master und
  • merge master in dev ,

sind im Allgemeinen nicht gleichwertig. Hier ist ein illustratives Beispiel, das den Unterschied zwischen den beiden erklärt. Nehmen wir an, Ihr Repo sieht folgendermaßen aus:

Wenn Sie dev in master zusammenführen

Wenn master ausgecheckt ist ( git checkout master ),

und Sie dann dev ( git merge dev ) zusammenführen, werden Sie in der folgenden Situation landen:

Der Zweig master verweist nun auf das neue Zusammenführungs-Commit ( F ), während dev immer noch auf dasselbe Commit ( E ) verweist wie vor der Zusammenführung.

Wenn Sie master in dev zusammenführen

Wenn andererseits dev ausgecheckt wird ( git checkout dev ),

und Sie dann master ( git merge master ) zusammenführen, werden Sie in der folgenden Situation landen:

Der Zweig dev verweist jetzt auf das neue Zusammenführungs-Commit ( F' , während master immer noch auf dasselbe Commit verweist wie vor der Zusammenführung ( D ).

)

Alles zusammenfügen

    
Jubobs 15.10.2014, 14:10
quelle

Tags und Links