2016-03-16 72 views
14

Ich bin mir bewusst, dass Filialen Schöpfer Informationen nicht wirklich speichern - und sie sind nur ein Zeiger auf ein Commit.Gibt es ein Skript, um von mir erstellte Git-Zweige aufzulisten?

Mein Ziel ist es, in der Lage zu sein, meine alten Zweige, die zurück in die Hauptzweig zusammengeführt wurden, zu löschen und Zweige aufzulisten, wo dies auch nicht getan wurde. (Eine Aufräumaktion).

Das ist anders als "nicht zusammengeführte Zweige finden", weil ich auch vereinigte Zweige finden möchte, und ich möchte es vom Autor tun.

Meine Frage ist: Gibt es ein Skript, um git Zweige von mir erstellt zu listen?

+0

Der Titel und Körper Ihrer Frage scheint im Widerspruch zu: Wollen Sie Sie können von Ihnen erstellte Zweige erstellen (was ich nicht für möglich halte) oder möchten nicht aufgeführte Zweige auflisten? Oder eine Kombination aus beidem? – morxa

+0

Mögliches Duplikat von [git, das nicht zusammengefügte Zweige findet] (http://stackoverflow.com/questions/12276001/git-finding-unmerged-branches) – gzh

+0

Ich möchte beides. Ich möchte alle Zweige, die von mir erstellt wurden - zusammengeführt oder nicht zusammengefasst. – hawkeye

Antwort

22

Dieser Befehl listet alle Zweige und ihre Autorennamen

git for-each-ref --format=' %(authorname) %09 %(refname)' --sort=authorname 

Wenn Sie Github verwenden Sie auch https://github.com/author/repo/branches/yours Ihre Niederlassungen

erhalten besuchen können, wenn Sie nur löschen wollen alle das fusionierte bereits Zweige können Sie uns den Befehl

git branch --merged | grep -v "\*" | grep -v master | grep -v dev | xargs -n 1 git branch -d 

weitere Details git for-each-ref Besuch here.

+2

Gibt es einen besseren Weg als durch grep, um es auf nur meine zu beschränken? – hawkeye

+0

Dies beantwortet die Frage nicht. Das OP gibt explizit die Frage an: "Meine Frage ist: Gibt es ein Skript, um von mir erstellte Git-Zweige aufzulisten?" Diese Antwort reicht nicht aus –

+0

Wenn Sie dem obigen Befehl '--sort = authorname' hinzufügen, können Sie Ihre Zweige gruppieren. Ansonsten bin ich mir nicht sicher, ob Sie die nur von Ihnen erstellten Zweige auflisten können. – SachinSunny

1

Als leichte Betauung von SachinSunny Antwort oben, können Sie die regulären Ausdruck Features von grep verwenden einen einfacheren Befehl auszuführen:

git branch --merged | grep -Pv "\*|master|dev" | xargs -n 1 git branch -d