Wie Liste nur aktive / zuletzt geändert branches in git?
Arbeite ich manchmal mit source-code-repositories mit vielen Zweigen, von denen die meisten alt sind und in der Regel nicht mehr relevant.
In diesen Fällen die vollständige Liste der Zweigstellen von git branch
ist nicht sehr hilfreich. Gibt es eine Möglichkeit, nur eine Liste "aktiv" - Filialen? Zum Beispiel, nur die Zweige, dass die erhaltenen commits in den letzten n Tage? Idealerweise ist die Liste gehören würde, die Letzte commit-Datum für jeden Zweig, und geben Sie, wenn der Zweig bereits vollständig zusammengeführt.
P. S.:
Ich merke, dass diese auch gelöst werden kann durch löschen von "alten" Branchen (wie bereits z.B. in Was tun mit den experimentellen nicht-fusionierte git-Zweige? ), aber dies ist nicht immer praktikabel oder angenommen, die auf ein bestimmtes Projekt.
- Möglich, Duplikat der Wie kann ich eine Liste von git-Verzweigungen, bestellt vom letzten commit?
- Gerade realisiert, dies ist eine doppelte.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie git-for-each-ref, um eine Liste aller lokalen und tracking-Filialen in absteigender Reihenfolge sortiert, die durch die committer Datum des letzten commit, wie diese:
Diese Ausgänge zB.:
Können Sie hinzufügen
--count=m
zu bekommen, bei den meisten m Filialen, können Sie--sort=-authordate
anstatt die committer Datum, können Sie natürlich auch verschiedene Formate.for-each-ref
sich nicht beschränken, das Ergebnis nach Datum, muss das gescriptet werden separat, aber zumindest haben Sie die Termine aus der commit-Objekt in der hand.git remote prune origin
erste, sonst bekommen Sie vielleicht eine alte Liste auch Dinge, die nicht mehr existieren auf der remote-siteDiese oneliner druckt alle lokalen Zweige, die zeitlich sortiert vom neuesten zum ältesten. Jede Filiale hat die letzten commit mit Menschen lesbare Datums-Zeichenfolge. Sie können es hinzufügen, um Ihre
.gitconfig
.Für remote-Niederlassungen ich kam mit dieser gruseligen Lösung:
Edit: je mehr ich denke, desto mehr fürchte ich, könnte unzuverlässig sein, weil
ls-remote
immer Verbindung zu remote-Seite in der Erwägung, dasslog
nicht. Es kann verlangen, zu tunfetch
vor jedem ausführen dieses Befehls./refs/remote
). Es funktioniert auch nicht für die lokalen tracking branches, weil die mtime von der ref-Datei in der Regel spiegelt die letzten fetch, nicht der Letzte (upstream) zu Begehen.