Git – Unterschied zwischen Amend- und Squash-Befehlen

Lesezeit: 2 Minuten

Benutzer-Avatar
Raju Guduri

Was ist der Unterschied zwischen Amend- und Squash-Befehlen? Ich habe beides ausprobiert und festgestellt, dass beide dasselbe für eine ordnungsgemäße Verwaltung tun.

Benutzer-Avatar
Jonathan.Brink

In Git werden Commits selten wirklich zerstört, sie werden einfach zu Waisen, oder losgelöstwas bedeutet, dass auf sie nicht durch eine Referenz wie eine Verzweigung oder ein Tag verwiesen wird oder sie erreichbar sind.

“ändern” und “quetschen” sind ähnliche Konzepte aber.

Typischerweise ändern ist ein einzelner Commit-Vorgang, bei dem Sie die von Ihnen bereitgestellte Arbeit mit Ihrem HEAD-Commit kombinieren möchten. Dies kann sehr praktisch sein, wenn Sie gerade ein Commit erstellt haben und feststellen, dass Sie diesem etwas Inhalt hinzufügen müssen. Rufen Sie einfach Ihren Commit-Befehl auf und verwenden Sie die --amend Möglichkeit.

Quetschen ist der abstraktere Begriff. Ich würde sagen, dass eine Wiedergutmachung eine Art Kürbis ist. Wann immer Sie Commits kombinieren, könnten Sie sagen, dass Sie sie quetschen. Wenn Sie eine Weile an einem Zweig gearbeitet und 5 Commits gemacht haben, die zusammen 1 Commit ergeben sollten, können Sie sie interaktiv rebasen, um sie zusammenzupressen.

Es gibt in Git mehrere Möglichkeiten zum Ändern/Squash, aber sie alle drehen sich um das Konzept, Ihren Commit-Verlauf zu organisieren (was bedeutet, den Verlauf eines Zweigs neu zu schreiben), um Grok einfacher zu machen.

amend ändert nur den letzten Commit.

squash ist wie das Zusammenführen mehrerer Commits zu einem einzigen Commit.

Bei nur einem Commit können ihre Auswirkungen gleich aussehen.

https://git-scm.com/book/en/v2/Git-Tools-Rewriting-History

Lassen Sie es mich anhand eines Anwendungsfalls erklären:

Angenommen, Sie haben gerade einige Änderungen festgeschrieben und stellen jetzt fest, dass Sie einige Funktionen unvollständig gelassen haben. Sie beginnen mit dem Schreiben des Codes, jetzt erstellen Sie ein neues Commit, besser gesagt amend die Änderungen zum letzten. Wenn Sie die Nachricht beibehalten möchten, wählen Sie die Nachricht mit aus git log. sonst schreiben git commit -m <your message> --amend. Jetzt ist Ihr letzter Commit gegangen, und der neue Commit mit der neuen Nachricht hat den Platz eingenommen.

Jetzt Squash, wenn Sie einige Tage an einem Feature gearbeitet haben und die Änderungen jeden Tag übernehmen. Nach Abschluss der Funktion müssen Sie die Funktion pushen. Dann sollten Sie alle Änderungen in einem Commit beibehalten, damit Probleme, die mit Ihrem festgeschriebenen Code gefunden werden, leicht identifiziert und entfernt werden können.

Gehe zu git log Nehmen Sie dann die Anzahl Ihrer Commits
git reset HEAD~<Number of commits>erstellen Sie jetzt einfach ein Commit und Sie können loslegen.

[Tip: if you already pushed your last commit(s), use -f flag to forcefully pushing.]

1158660cookie-checkGit – Unterschied zwischen Amend- und Squash-Befehlen

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy