it-swarm.com.de

Git: Wie kann ein Commit rückgängig gemacht werden?

Mit SVN ist es einfach, ein Commit umzukehren, aber wie geht das mit Git?

114
Mot

Verwenden Sie zum Erstellen eines neuen Commits, mit dem die Änderungen eines früheren Commits rückgängig gemacht werden:

$ git revert <commit>

Es ist auch möglich, ein Commit tatsächlich von einem beliebigen Punkt in der Vergangenheit zu entfernen, indem Sie es neu gründen und dann zurücksetzen. Sie möchten dies jedoch nicht, wenn Sie Ihre Commits bereits in ein anderes Repository verschoben haben (oder jemand anderes von Ihnen gezogen hat). .

104
Ben James

Um ein Merge-Commit zurückzusetzen, müssen Sie Folgendes verwenden: git revert -m <parent number>. Wenn Sie beispielsweise das zuletzt am häufigsten ausgeführte Zusammenführungs-Commit mit dem übergeordneten Element mit der Nummer 1 zurücksetzen möchten, verwenden Sie Folgendes:

git revert -m 1 HEAD

Um einen Merge-Commit vor dem letzten Commit zurückzusetzen, gehen Sie wie folgt vor:

git revert -m 1 HEAD^

Verwenden git show <merge commit SHA1> um die Eltern zu sehen, ist die Nummerierung die Reihenfolge, in der sie erscheinen, z.B. Merge: e4c54b3 4725ad2

dokumentation zum Zusammenführen von Git: http://schacon.github.com/git/git-merge.html

git-Merge-Diskussion (verwirrend, aber sehr detailliert): http://schacon.github.com/git/howto/revert-a-faulty-merge.txt

113
Marcus Ericsson

Wenn ich dich richtig verstehe, redest du davon, a

svn merge -rn:n-1

wenn Sie von einem früheren Commit zurücktreten möchten, suchen Sie in diesem Fall wahrscheinlich nach

git revert
4
Rudedog
git reset --hard HEAD^ 

Verwenden Sie den obigen Befehl, um Zusammenführungsänderungen rückgängig zu machen.

1