Ich habe diese Frage gefunden, als ich nach einer Möglichkeit gesucht habe, die aktuelle Revision abzurufen, um sie in weiteren Git-Befehlen zu verwenden. Aber als ich die Antworten las, fand ich es heraus: "Oh, warte, ich brauche es nicht, ich kann es nur HEADtatsächlich verwenden."
Antoine Pinsard
Antworten:
227
Was meinst du mit "Versionsnummer"? Es ist durchaus üblich, ein Commit mit einer Versionsnummer zu versehen und dann zu verwenden
$ git describe --tags
um den aktuellen HEAD für alle Tags zu identifizieren. Wenn Sie meinen, Sie möchten den Hash des aktuellen HEAD wissen, möchten Sie wahrscheinlich:
$ git rev-parse HEAD
oder für den kurzen Revisions-Hash:
$ git rev-parse --short HEAD
Es reicht oft aus, um Folgendes zu tun:
$ cat .git/refs/heads/${branch-master}
Dies ist jedoch nicht zuverlässig, da der Schiedsrichter möglicherweise verpackt ist.
Refs können verpackt sein .git/packed-refs, daher sollten Sie wahrscheinlich den direkten Zugriff vermeiden .git/refs/. Verwenden Sie einfach git rev-parse master(oder git rev-parse refs/heads/masterwenn Sie völlig eindeutig sein müssen).
Chris Johnsen
108
Es gibt viele Möglichkeiten, git log -1die einfachste und häufigste, denke ich
Wie mache ich aus einer Datei eine frühere Version?
TIMEX
1
Vielleicht möchten Sie Git Checkout HEAD ^ - Dateiname
Manojlds
2
Übrigens gibt dies VIEL MEHR als nur die aktuelle Revision und Sie müssen sie konsequent analysieren (also nicht die beste / einfachste / übliche Lösung, imho)
Ich denke, dass dies die beste Antwort ist, da sie nicht implementierungsabhängig ist. Williams Antwort "cat .git / refs / Heads / Master" liefert den gleichen Wert, es gibt jedoch keine Garantie dafür, dass es in Zukunft funktioniert, wenn sich die Implementierung ändert.
Thagomizer
Einverstanden, das ist die beste Antwort. Eine kurze Erwähnung der --shortOption würde es perfekt machen.
Bobby Jack
15
Dies gibt Ihnen die ersten Ziffern des Hashs und sie sind eindeutig genug, um beispielsweise eine Versionsnummer zu verwenden.
HEAD
tatsächlich verwenden."Antworten:
Was meinst du mit "Versionsnummer"? Es ist durchaus üblich, ein Commit mit einer Versionsnummer zu versehen und dann zu verwenden
um den aktuellen HEAD für alle Tags zu identifizieren. Wenn Sie meinen, Sie möchten den Hash des aktuellen HEAD wissen, möchten Sie wahrscheinlich:
oder für den kurzen Revisions-Hash:
Es reicht oft aus, um Folgendes zu tun:
Dies ist jedoch nicht zuverlässig, da der Schiedsrichter möglicherweise verpackt ist.
quelle
.git/packed-refs
, daher sollten Sie wahrscheinlich den direkten Zugriff vermeiden.git/refs/
. Verwenden Sie einfachgit rev-parse master
(odergit rev-parse refs/heads/master
wenn Sie völlig eindeutig sein müssen).Es gibt viele Möglichkeiten,
git log -1
die einfachste und häufigste, denke ichquelle
Dies gibt Ihnen nur die Überarbeitung.
quelle
--short
Option würde es perfekt machen.Dies gibt Ihnen die ersten Ziffern des Hashs und sie sind eindeutig genug, um beispielsweise eine Versionsnummer zu verwenden.
quelle
unten funktioniert mit jeder zuvor gedrängten Revision, nicht nur HEAD
für abgekürzten Revisions-Hash:
für lange Revision Hash:
quelle