Squash mehr als zwei Commits im Quellbaum?

Lesezeit: 2 Minuten

Ich habe eine große Anzahl von Commits, etwa 20, die ich seit meinem letzten Push auf Origin/Master durchgeführt habe. Ich hatte nie mehr als einen Branch, Master, und alle Commits wurden auf dem Master durchgeführt. Wie kann ich alle 20 Commits in einem Commit zusammenfassen, vorzugsweise mit Sourcetree? Ich möchte dies tun, damit ich nur einen Commit zu Origin/Master schieben kann.

In Sourcetree habe ich herausgefunden, den interaktiven Rebase-Befehl im Repository-Menü zu verwenden. Es zeigt die genaue Liste der Commits an, die ich quetschen möchte. Ich habe versucht, wiederholt auf die Squash-Schaltfläche zu drücken, bis ein Commit angezeigt wird, das alle enthält. Aber wenn ich auf OK drücke, werden am Ende nur die beiden letzten Commits gequetscht. Obwohl der Dialog zu zeigen scheint, dass er in der Praxis mehrere quetschen kann, kann ich ihn nicht zum Laufen bringen.

Einfachere Lösung (als eine Rebase):

Wählen Sie im Log-Eintrag den „Origin/Master“-Commit aus, klicken Sie auf „Reset <branch> to this commit“.

http://i.imgur.com/nWDzb6k.png

Verwenden Sie den standardmäßigen gemischten Modus.

http://i.imgur.com/bTaS5KD.jpg

Dann hinzufügen und bestätigen: Alle Ihre Änderungen werden erneut in registriert eines neues Commit, das Sie pushen können.

Sehen git reset Entmystifiziert für mehr.

  • Danke, das hat es getan. Ich schätze also, es hat alle Änderungen seit Origin in die Arbeitskopie verschoben? Ist das richtig?

    – mark-hahn

    3. August 2014 um 20:33 Uhr


  • @mark-hahn setzt den Index zurück, während Ihr Arbeitsbaum intakt bleibt, sodass Sie sich erneut registrieren können alle Änderungen in einem neuen Commit.

    – VonC

    3. August 2014 um 20:34 Uhr

  • Ach, ich verstehe. Es hat sie in den Index aufgenommen, was begangen wurde. Ich bin es gewohnt, direkt vom Arbeitsbereich aus zuzuweisen. Vielleicht verstehe ich es immer noch nicht. Ich werde das weiter studieren.

    – mark-hahn

    3. August 2014 um 20:37 Uhr

  • @mark-hahn ja, git-scm.com/blog/2011/07/11/reset.html ist eine gute Ressource, um zu verstehen git reset.

    – VonC

    3. August 2014 um 20:37 Uhr

  • Kann ich den Soft-Modus wie diese Antwort verwenden? Was ist der Unterschied?

    – Krokusek

    16. März 2017 um 21:51 Uhr


1037030cookie-checkSquash mehr als zwei Commits im Quellbaum?

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

Privacy policy