Git: Commits squashen

Ich bin gerade dabei, mit zwei anderen Leuten an einer OWA für Diaspora* zu arbeiten. OWA steht für Offene Web-Anwendung. Jetzt hat mich der Projektleiter gebeten, meine Commits zu squashen. Wie das geht, steht hier.Für den Fall, dass ich es später noch einmal brauchen sollte ^^

Zunächst einmal: Entwickle gefälligst nicht auf master!!!11elf *note-to-self*

So, also, da liegen jetzt einige Commits auf einem anderen Branch herum, die über ein Pull Request in das Hauptprojekt vom Projektleiter zurückfließen sollen. Eine kurze Suche nach „GitHub squash“ führt mich zu diesem Blog-Artikel von Steve Klabnik. Okay, also zunächst einmal auf den Upstream (d.h. Projektleiter-Repo) verweisen.

Dazu gibt es eine Anleitung bei GitHub:

  1. git remote add upstream https://github.com/projektleiter/repo.git
  2. git fetch upstream
  3. git checkout master
  4. git merge upstream/master
  5. git push

Ist doch gar nicht so schwer 🙂 Die Erklärung stehen im Link oben.

So, haben wir also den Master synchronisiert. Wenn ich mir aber den Artikel von Steve anschaue, sind das ein paar Schritte zu viel. Er geht davon aus, dass wir ganz artig auf einen eigenen Branch entwickelt haben. Bei mir ist’s dann „a11y“ für einige Barrierefreiheit-Features gewesen. Also wechseln wir auf diesen und führen ein interaktives Rebase aus:

  1. git checkout a11y
  2. git rebase -i upstream/master
  3. git push origin a11y -f

Wie im Blog erwähnt, werden alle „picks“ durch „squash“ ersetzt. Ausgenommen dem obersten (führt sonst zu einer Fehlermeldung). Dann muss noch die Commit-Beschreibung angepasst werden und ab dafür 🙂

Advertisements

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s