Ich möchte herausfinden, wer eine Niederlassung erstellt hat.
Ich kann das irgendwie mit:
git branch -a | xargs -L 1 bash -c 'echo "$1 `git log --pretty=format:"%H %an" $1^..$1`"' _
Dies gibt jedoch den letzten Committer pro Zweig zurück, nicht unbedingt die Person, die den Zweig erstellt hat.
git
git-branch
Ofir Farchy
quelle
quelle
Antworten:
Ein Zweig ist nichts anderes als ein Festschreibungszeiger. Daher werden keine Metadaten wie "Wer hat mich erstellt?" Verfolgt. Überzeugen Sie sich selbst. Versuchen Sie es
cat .git/refs/heads/<branch>
in Ihrem Repository.Wenn Sie diese Informationen in Ihrem Repository wirklich nachverfolgen möchten, lesen Sie die Zweigbeschreibungen. Mit ihnen können Sie Zweigstellen zumindest lokal beliebige Metadaten zuordnen.
Auch DarVars Antwort unten ist eine sehr clevere Möglichkeit, an diese Informationen zu gelangen.
quelle
Liste der entfernten Git-Zweige nach Autor sortiert nach Committer-Datum:
quelle
git for-each-ref --format='%(committerdate)%09%(authorname)%09%(refname)' | sort -k5n -k2M -k3n -k4n | grep remotes | awk -F "\t" '{ printf "%-32s %-27s %s\n", $1, $2, $3 }'
(Idee von stackoverflow.com/a/3631819 - möglicherweise müssen die Zahlen im awk printf angepasst werden, abhängig von der maximalen Länge des Datums / der Autorennamen)Ich habe die vorherigen Antworten mithilfe der
--sort
Flagge optimiert und einige Farben / Formatierungen hinzugefügt:quelle
quelle
Hinzufügen zu DarVars Antwort :
PS: Wir haben AWK verwendet, um den Autor und den Remote-Zweig hübsch zu drucken.
quelle
Sie können herausfinden, wer einen Zweig in Ihrem lokalen Repository erstellt hat
Beispielausgabe:
Dies ist jedoch wahrscheinlich nutzlos, da in Ihrem lokalen Repository normalerweise nur Zweige erstellt werden.
Die Informationen werden unter ./.git/logs/refs/heads/ branch gespeichert . Beispielinhalt:
Das letzte Commit in diesem Beispiel stammte vom Benutzer "b", während der Zweig "b2" vom Benutzer "a" erstellt wurde. Wenn Sie Ihren Benutzernamen ändern, können Sie überprüfen, ob git reflog die Informationen aus dem Protokoll übernimmt und den lokalen Benutzer nicht verwendet.
Ich kenne keine Möglichkeit, diese lokalen Protokollinformationen an ein zentrales Repository zu übertragen.
quelle
Wir können es anhand des Autorennamens herausfinden
quelle
Angenommen:
master
master
nochquelle
Ich weiß, dass dies nicht ganz der Umfang der Frage ist, aber wenn Sie feststellen, dass nur Commits eines bestimmten Autors gefiltert werden müssen, können Sie jederzeit zu grep weiterleiten :)
Viel Spaß beim Codieren! :) :)
quelle
für diejenigen, die ein DESC suchen ... das scheint zu funktionieren
--sort=-
Neu für diese Formatierung ... meine Augen verlieren etwas von ihrem Blut
Weitere Referenz: https://stackoverflow.com/a/5188364/10643471
quelle
Soweit ich weiß, können Sie sehen, ob Sie nur der Schöpfer eines Zweigs sind. Dies wird durch die erste Zeile in .git / ref / Heads / <branch> angezeigt. Wenn es mit "Created from HEAD" endet, sind Sie der Schöpfer.
quelle