Wie man kürzlich vorgenommener Commit in Git rückgängig macht

Eines der größten Dinge in Git ist, dass Sie fast alles rückgängig machen können. Lassen Sie uns betrachten, wie man kürzlich vorgekommene Commits in Git rückgängig machen kann.

Wie kann man Commits mit dem Befehl git reset rückgängig machen

  • git reset --soft HEAD~x (or git reset --soft commit hash).
git reset --soft HEAD~x
Hinweis: Setzen Sie die entsprechende Zahl statt ~x. Zum Beispiel, wenn Sie ~3 angeben, wird der Befehl den dritten Commit vom Boden beeinflussen. Wenn Sie ~x nicht angeben, wird der Befehl ~x, git reset --soft HEAD Ihren letzten Commit beeinflussen.

Der Befehl git reset --soft HEAD spult Ihren aktuellen HEAD zur angegebenen Revision zurück. Wenn Sie diesen Befehl verwenden, machen Sie gerade den letzten Commit rückgängig, aber die ihrerseits gemachten Änderungen werden in Ihrem Arbeitsbaum und auf Ihrem Index eingespeichert. So wird der Befehl so git commit einen Commit genau mit den gleichen Änderungen wie der Commit, den Sie vorher "rückgängig gemacht" haben, erstellen.

git reset --hard HEAD~x (oder git reset --hard commit hash).
Git reset --hard HEAD~x

Wie kann man Commits mit dem Befehl git reset rückgängig machen

git revert HEAD~x (git reset --hard commit hash) es kehrt zurück die Änderungen durch den letzten angegebenen Commit in HEAD und erstellt einen neuen Commit mit den zurückgekehrten Änderungen.

Git revert HEAD ~x

Zum Beispiel,wenn Ihre Geschichte wie gefolgt ist:

git log --oneline 
872fa7e try something crazy 
a1e8fb5 make some important changes to hello.txt

Obwohl der Commit 872fa7e noch in der Geschichte existiert, ist er technisch “annuliert”. Der neue Commit e2f9a78 ist ein Gegenteil der Änderungen in 872fa7e.

Das ist die beste Methode für die Annulierung von Commits, wenn man in den öffentlich geteilten Repositorien arbeitet.

Wie kann man Commits mit dem Befehl git amend rückgängig machen

Um Änderungen vorzunehmen, veranstalten Sie sie, und checken Sie wieder ein, um den folgenden Befehl zu führen:

git commit --amend

Dieser Befehl wird Ihren $EDITOR öffnen und wird Ihnen die Nachricht ändern lassen. Die neuen Änderungen werden zum amendierten Commit hinzugefügt.

Wenn Sie nur Änderungen in der Commit-Nachricht vornehmen möchten, "checken Sie einfach noch einmal" ohne irgendwelche inszenierten Änderungen, aber mit der richtigen Nachricht ein:

git commit --amend -m "Das ist die richtige Nachricht"

Wenn es irgendetwas anderes gibt, um zu diesem letzten Commit hinyuyuf[gen, machen Sie gerade Stufenänderungen als normal und checken Sie dann wieder ein:

git add some/changed/file.ext 
git commit --amend -m "commit message"
Um schon eingekellerten Commit zu verändern, verwenden Sie folgende Befehl:
git commit --amend git push origin master --force

Die Eigenschaft --force zwingt, Ihren Commit nach den gemachten Veränderungen einzukellern, um Remote-Geschichte zu erneuern.

Hinweis: Seien Sie mit dem Lufen dieses Befehls sorgfältig, weil das sehr wahrscheinlich andere verhindern wird, mit dem Repositorium zu synchronisieren, wenn sie bereits eine Kopie gezogen haben. Vereinbaren Sie mit ihnen zuerst.

Wie kann man Commits mit dem Befehl git rückgängig machen

Beim Überprüfen des vorherigen Commits mit dem Befehl git checkout setzen sie das Repositorium bevor Ihrem letzten Commit (derjenige, den Sie rückgängig machen möchten) geschieht. Der repo wird in "detached HEAD" gesetzt und alle ihren neuen Commits werden verwaist, wenn Sie Branches zurück zu einem feststehenden Branch ändern. Verwaiste Commits werden vom Git-Müllsammler automatisch gelöscht.

Vom getrennten HEAD können Sie laufen

git checkout -b new_branch_without_my_last_commit

Das wird einen neuen Branch mit dem Namen new_branch_without_my_last_commit erstellen und zu diesem Status wechseln. Der repo wird auf einer neuen Geschichtszeitachse, wo Ihr letzter Commit nicht existiert, sein.

Hinweis: Diese Methode ist unpassend, falls der vorherige Branch, den Sie brauchen, Ihr Masterbranch ist.