1008 Stimmen

Wie erhalte ich die Anzahl der Git-Commits?

Ich möchte die Anzahl der Übertragungen meines Git-Repositorys abfragen, ähnlich wie die Revisionsnummern in SVN.

Das Ziel ist es, sie als eindeutige, aufsteigende Build-Nummer zu verwenden.

Ich mache das derzeit auf Unix/Cygwin/msysGit:

git log --pretty=format:'' | wc -l

Aber ich finde, es ist ein bisschen wie ein Hacken.

Gibt es eine bessere Möglichkeit, dies zu tun? Es wäre cool, wenn ich tatsächlich keine wc oder sogar Git, so dass es auf einem nackten Windows funktionieren könnte. Einfach eine Datei oder eine Verzeichnisstruktur lesen...

2 Stimmen

Vielleicht finden Sie hier interessante Antworten: Was ist das Git-Äquivalent für die Revisionsnummer?

249 Stimmen

git rev-list HEAD --count Git-Rev-Liste

19 Stimmen

@jberger: Ich denke, Ihr Kommentar sollte in eine Antwort umgewandelt werden.

47voto

demenvil Punkte 1015

Sie können einfach :

git shortlog -s -n

Ergebnis :

 827  user one
    15  user two
     2  Gest

34voto

VonC Punkte 1117238

Sie sind nicht der erste, der über eine "Revisionsnummer" in Git sondern ' wc ' ist ziemlich gefährlich, da die Verpflichtungen gelöscht oder unterdrückt werden können und die Geschichte neu aufgerollt werden kann.

Die "Revisionsnummer" war für Subversion besonders wichtig, da sie im Falle einer Verschmelzung erforderlich war (SVN1.5 und 1.6 haben sich in dieser Hinsicht verbessert).

Sie könnten einen Pre-Commit-Hook einrichten, der eine Revisionsnummer in den Kommentar einfügt, mit einem Algorithmus ohne Beteiligung von Nachschlagen der todo Geschichte eines Zweigs, um die richtige Zahl zu ermitteln.

Basar hat sich tatsächlich etwas einfallen lassen ein solcher Algorithmus und ist vielleicht ein guter Ausgangspunkt für das, was Sie tun wollen.

(Als Antwort von Bombe weist darauf hin, dass Git einen eigenen Algorithmus hat, der auf dem letzten Tag, der Anzahl der Übertragungen und einem kleinen SHA-1-Schlüssel basiert). Sie sollten seine Antwort sehen (und hoch bewerten), wenn sie für Sie funktioniert.


Zur Veranschaulichung Aarons Idee können Sie auch den Git-Commit-Hash an die "Info"-Datei einer Anwendung anhängen die Sie mit Ihrer Anwendung verbreiten.

Auf diese Weise würde die About-Box wie folgt aussehen:

About box

Die Anwendungsnummer ist Teil der Übergabe, aber die "Info"-Datei der Anwendung wird während des Paketierungsprozesses erstellt, wodurch eine anwendbar Build-Nummer zu einer technischen Revision id .

26voto

Jimmy Kane Punkte 15004

Ein einfacher Weg ist:

 git log --oneline | wc -l

oneline gewährleistet das.

23voto

John Gietzen Punkte 47223

Am einfachsten ist es, sie in eine Variable zu übertragen:

export GIT_REV_COUNT=`git rev-list --all --count`

19voto

Das Git-Shortlog ist eine Möglichkeit, die Commit-Details zu erhalten:

git shortlog -s -n

Hier wird die Anzahl der Übertragungen gefolgt vom Namen des Autors angezeigt. Die Option -s entfernt alle Commit-Meldungen für jeden Commit, den der Autor gemacht hat. Entfernen Sie die gleiche Option, wenn Sie auch die Commit-Meldungen sehen möchten. Die Option -n wird zum Sortieren der gesamten Liste verwendet. Ich hoffe, dies hilft Ihnen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X