Handy Git tricks

Hier eine Sammlung von Tricks, die ich verwende, um mein Leben mit Git zu vereinfachen und eine saubere Histories zu haben, die es erleichtert, den Code zu verstehen. Was der Hauptgrund für eine Versionkontrolle ist, oder?

Zweig verschieben

Um einen Git Zweig zu einem anderen Zweig zu verschieben, benutzt man

git rebase --onto

Beispiel

git rebase --onto beta develop fix

Aktualisieren ohne Checkout

Um einen Zweig zu aktualisieren, ohne ihn vorher auszuchecken – beispielsweise um ein Rebase auf den Elternzweig zu machen – benutzt man

git fetch origin <Zweig>:<Zweig>

Man muss den Ziel-Zweig wirklich 2x angeben!

Beispiel

git fetch origin develop:develop

Geschichte umschreiben

Bevor ich meine Änderungen in merge, schreibe ich meine Historie um, so dass jeder Commit sauber ist und es keine „Änderungen nach einem Review“-Commits mehr gibt, denn sie helfen nicht beim Verstehen, warum der Code so ist, wie er ist..

git add .
git commit --fixup
git rebase -i --autosquash develop

Read more about this in the Git Book

Kenne die Version

Wir verwenden annotated tags, um jedes Release zu markieren. Außerdem mergen wir niemals zurück, sondern nur ältere Branches in neuere Branches. Dies erlaubt es uns auf einfache Weise die Versionsnummer basierend auf Tags zu bestimmen.

git describe --first-parent [Zweig]

Wenn man keinen Zweig angibt (oder Git hash o.ä.), bekommt man die Versionsnummer des aktuellen Zweiges.

Beispiel

git describe --first-parent beta