2016-09-05 3 views
7

Ich versuche, das letzte Commit auf dem Zweig (von jemand anderem) rückgängig zu machen. Ich benutze den TortoiseGit Client. Wenn ich auf "Änderungen durch diesen Commit wiederherstellen" klicke, bietet git zwei Optionen an: Parent1 und Parent2. Was bedeutet das? Was ist Parent1 und was ist Parent2?git revert - git fragend parent1 oder parent2

screenshot

+1

Werfen Sie auch einen Blick auf http://stackoverflow.com/questions/5970889/why-does-git-revert-complain-about-a-missing-m-option –

Antwort

3

Jedes Commit in Git hat mindestens ein Elternteil (außer dem ersten/initialen Commit). Die Eltern eines Commits sind die vorherigen.

C1 ist die erste Festschreibung. C2 ist der zweite. C1 ist das Elternteil von C2. Das Gleiche gilt für C3.

Ein Merge-Commit ist ein spezieller Commit im Sinne der Anzahl der Eltern.

C1 <- C2 <- C3 

       \ 

.. C4 <- C5 <- C6 

C6 ist ein Merge-Commit. Es hat zwei Elternteile, C3 und C5. Wenn Sie die beiden Zweige (Commits) zusammengeführt haben, als Sie an C5 waren: C5 heißt Eltern 1 (erster Elternteil) und C3 ist Eltern 2 (zweiter Elternteil).

3

Es scheint, dass Sie eine merge begehen in Ihrer Branche zurückzukehren versuchen. Ein Merge-Commit hat zwei Eltern, eins für jeden Zweig in der Zusammenführung beteiligt. Sie müssen auswählen, welche Version des Verlaufs Sie beibehalten möchten. Sie sollten jeden Elternteil überprüfen und entscheiden, welchen Sie behalten möchten. Höchstwahrscheinlich möchten Sie wahrscheinlich das übergeordnete Commit beibehalten, das im Zweig php7 angezeigt wird. Dies sollte die Parent 1 Option im Dropdown sein.

php7 A -- B -- M  <-- retain this parent's version of history 
      /
master .. C