Frage

Ich habe ein Skript bekam, dass die anfängliche begehen in einem Repository verweisen muss. git hat die besondere Referenz HEAD, aber nicht über die entsprechenden TAIL. Ich kann nichts in git help rev-parse finden, um mir zu helfen scheint.

Hier ist, was ich tun möchte:

git show TAIL

Hier ist eine Option, die ich habe:

git show `git log --reverse | if read a commit ; then echo $commit ; fi`

Das ist ziemlich hacky und hängt von der Ausgabe von git log nicht zu ändern.

Im Moment habe ich Tag nur die ersten begehen und diese als meine Refspec. Ich möchte jedoch ein allgemeines Werkzeug lösen, so dass nicht eine gute Option.

War es hilfreich?

Lösung

Sie nicht git-log für Scripting:. Entweder git-rev-Liste oder git-log mit dem angegebenen benutzerdefinierten Format ( "--format = " Option)

Es gibt zusätzliches Problem mit Ihrer Frage: Es existieren kann mehr als ein so TAIL root commit (elternlos Festschreibung) in einem Repository (auch wenn wir getrennte Zweige diskontieren, wie 'html', " Mann‘und 'todo' in git.git Repository). Dies wird zur Folge haben in der Regel von einem separaten Projekten verbinden, oder separat entwickelt Teilprojekt mit subtree merge von.

Zum Beispiel Git Repository 6 root verpflichtet: git-gui, gitk (subtree-Fusion), gitweb (fusionierte, nicht mehr separat entwickelt), git Mail-Tools (fusionierten sehr früh in der Projektentwicklung) und p4 schnelle -export (vielleicht zufällige). Das zählt nicht Wurzeln von ‚html und‚Menschen‘Zweige‚Convenience‘Zweige, die vorab generierte Dokumentation enthalten, und‚todo‘Zweig mit ToDo-Liste und Skripten.


Wenn Sie 1.7.4.2 oder neuer haben git, können Sie die --max-parents Option verwenden:

$ git rev-list --max-parents=0 HEAD

Sie können aber Liste aller elternlos (root) erhalten begeht zugänglich von Stromzweig mit:

$ git rev-list --parents HEAD | egrep "^[a-f0-9]{40}$"

Andere Tipps

git rev-list HEAD | tail -n 1 ist eine stabilere Option.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top