Git-Befehl zum Anzeigen der HEAD-Commit-ID?


250

Mit welchem ​​Befehl kann ich die Commit-ID von HEAD ausdrucken?

Das mache ich von Hand:

$ cat .git/HEAD
ref: refs/heads/v3.3
$ cat .git/refs/heads/v3.3
6050732e725c68b83c35c873ff8808dff1c406e1

Ich benötige jedoch ein Skript, das die Ausgabe eines Befehls zuverlässig an eine Textdatei weiterleiten kann, sodass die Textdatei genau die Festschreibungs-ID von HEAD enthält (nicht mehr oder weniger und nicht nur eine Referenz). Kann jemand helfen?


Ich habe vorher eine ähnliche Frage. Und es wurde hier gut beantwortet: stackoverflow.com/questions/44994626/…
smwikipedia

Antworten:


450

Verwenden Sie den Befehl:

git rev-parse HEAD

Für die Kurzversion:

git rev-parse --short HEAD

34
Für alle, die nach der Kurzversion des Hash suchen, git rev-parse --short HEADwird es funktionieren.
mgarciaisaia


15

Alter Thread, noch zum späteren Nachschlagen ... :) auch folgende Arbeiten

git show-ref --head

Standardmäßig wird HEAD herausgefiltert. Seien Sie jedoch vorsichtig, wenn Sie folgen. Plural "Köpfe" mit einem 's' am Ende. Der folgende Befehl zeigt Zweige unter "refs / Heads".

 git show-ref --heads

4
Mit diesen Befehlen in einem (großen) Git-Repo erhalte ich zwei Zeilen von git show-ref --headsund 6290 Zeilen von git show-ref --head. Wenn Sie also nur einen einzigen Hash möchten, führt dies möglicherweise nicht zum beabsichtigten Ergebnis.
Remigius Stalder

7

Sie können git logOptionen angeben , um nur das letzte Commit anzuzeigen, -1und ein Format, das nur die Commit-ID enthält, wie folgt:

git log -1 --format=%H

Wenn Sie die verkürzte Commit-ID bevorzugen:

git log -1 --format=%h



1

Laut https://git-scm.com/docs/git-log können Sie für eine schönere Ausgabe in der Konsole das Argument --decorate des Befehls git-log verwenden :

git log --pretty=oneline --decorate

wird drucken:

2a5ccd714972552064746e0fb9a7aed747e483c7 (HEAD -> master) New commit
fe00287269b07e2e44f25095748b86c5fc50a3ef (tag: v1.1-01) Commit 3
08ed8cceb27f4f5e5a168831d20a9d2fa5c91d8b (tag: v1.1, tag: v1.0-0.1) commit 1
116340f24354497af488fd63f4f5ad6286e176fc (tag: v1.0) second
52c1cdcb1988d638ec9e05a291e137912b56b3af test

0

git rev-parse --abbrev-ref HEAD


1
Hier wird keine Festschreibungs-ID angezeigt, sondern alle mit dem Festschreiben verknüpften Namen (wie Zweige oder Tags). Dies ist nicht das, was der ursprüngliche Benutzer wollte.
Asfand Qazi

0

Sie können diesen Befehl verwenden

$ git rev-list HEAD

Sie können auch den headUnix-Befehl verwenden, um die neuesten n HEADCommits wie anzuzeigen

$ git rev-list HEAD | head - 2


0

Sie können verwenden

git log -g branchname

um git reflogInformationen zu sehen , die wie die git logAusgabe formatiert sind

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.