Git: Ändern Sie eine vorhandene Commit-Nachricht

Fehler sind alltäglich, wir alle machen sie. Deshalb setzen sie Radiergummis auf Bleistifte. Und das ist bei Tools wie Git nicht anders. Während einige Änderungen schwer rückgängig zu machen sind, gibt es normalerweise einen Weg.

Was also, wenn Sie eine vorhandene Commit-Nachricht ändern möchten? Glücklicherweise ist dies in Git einfach, aber die Methode kann sich je nach einigen Faktoren ein wenig ändern.

Letztes Commit behoben, noch nicht an Remote gepusht

Dies ist der einfachste Fall, da Sie kein entferntes Repository ändern müssen, sondern nur Ihr eigenes. In diesem Fall können Sie den folgenden Befehl verwenden:

$ git commit --amend

Wenn Sie diesen Befehl ausführen, wird ein Editor geöffnet, in dem Sie die ändern können letzte Nachricht begehen. Sobald Sie fertig sind und den Editor speichern/schließen, wird die Commit-Nachricht geändert.

Persönlich bevorzuge ich es, die meisten Dinge auf der Befehlszeile zu erledigen, was Sie tun können, indem Sie dem obigen Befehl ein Argument und eine Nachricht hinzufügen:

$ git commit --amend -m "Added a new file"

Auf diese Weise wird der Editor nicht geöffnet, sondern die Commit-Nachricht wird sofort geändert.

Fix Last Commit, Push to Remote

Dies ist ein weiterer häufiger Fall und etwas schwieriger zu beheben, da wir nicht nur unser eigenes Repository ändern müssen, sondern auch das entfernte Repository ändern müssen, das möglicherweise weiter voraus ist als Ihr lokaler Zweig.

Der erste Schritt besteht darin, den letzten Commit zu ändern, genau wie wir es im vorherigen Abschnitt getan haben:

$ git commit --amend -m "Added a new file"

Anschließend müssen Sie diese Änderungen an das Remote-Repository übertragen. Dies muss jedoch über die erfolgen --force Flagge.

$ git push <remote> <branch> --force

Wir müssen es auf diese Weise tun, um das entfernte Repository mit unserem eigenen lokalen Zustand zu überschreiben.

Seien Sie sich bewusst, dass Sie dies auch tun, indem Sie den Push erzwingen verlieren alle Commits im lokalen Zweig, die Sie nicht bereits in Ihrem lokalen Zweig haben. Mit Vorsicht fortfahren!

Sehen Sie sich unseren praxisnahen, praktischen Leitfaden zum Erlernen von Git an, mit Best Practices, branchenweit akzeptierten Standards und einem mitgelieferten Spickzettel. Hören Sie auf, Git-Befehle zu googeln und tatsächlich in Verbindung, um es!

Wenn Sie den Fehler schnell genug erkennen können, ist die Änderung kein Problem. Andernfalls müssen Sie möglicherweise eine andere Lösung finden, um zu vermeiden, dass Änderungen verloren gehen, die nach der Commit-Nachricht vorgenommen wurden, die Sie ändern möchten.

Verwenden Sie Interaktives Rebase

Eine andere Option, die flexibler ist als die zuvor beschriebenen Lösungen, ist die Verwendung einer interaktiven Rebase. Auf diese Weise können Sie die letzten N Commits überprüfen und Änderungen daran vornehmen, einschließlich Picking, Squashing usw.

Um die Rebase zu starten, können Sie den folgenden Befehl verwenden:

$ git rebase -i HEAD~n

Hier n ist die Anzahl der Commits, die Sie überprüfen und bearbeiten möchten. Sie sehen dann eine Liste mit Commits, ähnlich wie diese:

$ $ git rebase -i HEAD~4
pick 788ebf0 Oops, I forgot to add a new file
pick ced1329 Fixed a super critical bug
pick 5e9cdc5 Added a new file



















Wie Sie sehen können, sind alle letzten N Commits aufgelistet, und Sie können ihre Nachrichten nach Bedarf ändern.

Zeitstempel:

Mehr von Stapelmissbrauch