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
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