2. April 2010 um 11.53 Uhr
Seit ich Git benutze, habe ich nach einer kurzen, einfachen Methode gesucht, einen branch auf den Stand seines remote branches zu bringen. Obwohl ich trotz intensiver Suche nichts dazu gefunden habe, ist es ganz einfach.
Angenommen, es gibt einen branch dev und den zugehörigen remote branch elsewhere/dev, dann sagt man, dass dev ein tracking branch für elsewhere/dev ist. Für diese Konstellation gibt git status
bereitwillig folgende Auskunft, wenn ein branch dem anderen voraus ist:
$ git status
# On branch dev
# Your branch is behind 'elsewhere/dev' by 1 commit, and can be fast-forwarded.
Leider fehlen diese Angaben völlig, wenn die beiden branches den gleichen Stand haben:
$ git status
# On branch dev
nothing to commit (working directory clean)
Das ergibt zwei Probleme:
Ich hatte schließlich zwei Shell-Skripte geschrieben, die diese Funktionen bereitstellen.
Wie sich nun nach intensiver Studie der Man-Pages herausstellte, ist das unnötig und beiden Probleme lassen sich ganz einfach beheben:
git branch -vv
zeigt auch den remote branch mit an, falls einer existiert.git merge @{u}
führt einen merge mit den remote branch durch.Wie man git-rev-parse(1) entnehmen kann, gibt es den Zusatz @{upstream}
oder kurz @{u}
mit dem man sich auf den remote branch eines branches beziehen kann. Genau was ich gesucht habe.
Wenn das jetzt noch irgendwie einfacher zu finden gewesen wäre, hätte ich mir die Skripte sparen können.
von cpx.
Alle Rechte vorbehalten.
uselessness.de — Useless and overrated.
Erzeugt mit Jekyll am 17. August 2011.