Frage Wie kann der Hash für das aktuelle Commit in Git abgerufen werden?


Ich möchte (vorerst) die Möglichkeit beibehalten, Git-Änderungssätze mit Arbeitselementen zu verknüpfen, die in TFS gespeichert sind.

Ich habe bereits ein Tool geschrieben (mit einem Hook von Git), in dem ich workitemidentifiers in die Nachricht eines Git-Changesets einfügen kann.

Ich möchte jedoch auch die Kennung des Git-Commits (der Hash) in einem benutzerdefinierten TFS-Arbeitsaufgabenfeld speichern. Auf diese Weise kann ich ein Workitem in TFS untersuchen und sehen, welche Git-Changesets mit dem Workitem verknüpft sind.

Wie kann ich den Hash aus dem aktuellen Commit von Git einfach abrufen?


1415
2018-06-04 08:42


Ursprung


Antworten:


Verwenden Sie simply, um einen beliebigen erweiterten Objektverweis in SHA-1 umzuwandeln git-rev-parse, beispielsweise

git rev-parse HEAD

oder

git rev-parse --verify HEAD

Randnotiz: Wenn du dich drehen willst Verweise (Geäst und Stichworte) in SHA-1, gibt es git show-ref und git for-each-ref.


2068
2018-06-04 09:05



Wenn Sie nur den verkürzten Hash haben wollen:

git log --pretty=format:'%h' -n 1

Außerdem ist die Verwendung von% H eine weitere Möglichkeit, den langen Hashwert zu erhalten.


324
2017-09-30 23:32



Ein anderer, der git log verwendet:

git log -1 --format="%H"

Es ist dem @outofculture sehr ähnlich, obwohl es ein bisschen kürzer ist.


116
2017-11-21 18:48



Der Vollständigkeit halber, da niemand es bisher vorgeschlagen hat. .git/refs/heads/master ist eine Datei, die nur eine Zeile enthält: den Hash des letzten Commits an master. Du könntest es einfach von dort lesen.

Oder wie Befehl:

cat .git/refs/heads/master

Aktualisieren:

Beachten Sie, dass git nun unterstützt, einige Kopfreferenzen in der Pack-Ref-Datei anstatt als Datei im Ordner / refs / heads / zu speichern. https://www.kernel.org/pub/software/scm/git/docs/git-pack-refs.html


61
2017-10-16 11:34



Um die vollständige SHA zu erhalten:

$ git rev-parse HEAD
cbf1b9a1be984a9f61b79a05f23b19f66d533537

Um die verkürzte Version zu erhalten:

$ git rev-parse --short HEAD
cbf1b9a

58
2017-07-29 20:04



Es gibt immer git describe auch. Standardmäßig gibt es Ihnen -

john@eleanor:/dev/shm/mpd/ncmpc/pkg (master)$ git describe 
release-0.19-11-g7a68a75

34
2017-08-26 10:43



Hash übergeben

git show -s --format=%H

Abgekürzter Commit-Hash

git show -s --format=%h

Klicken Hier für mehr git show Beispiele.


25
2018-03-27 19:33



Benutzen git rev-list --max-count=1 HEAD


24
2018-06-04 08:48



Wenn Sie den Hash während eines Skripts in einer Variablen speichern müssen, können Sie Folgendes verwenden

last_commit=$(git rev-parse HEAD)

Oder, wenn Sie nur die ersten 10 Zeichen möchten (wie github.com)

last_commit=$(git rev-parse HEAD | cut -c1-10) 

18
2017-07-15 16:04



Die prägnanteste Art, die ich kenne:

git show --pretty=%h 

Wenn Sie eine bestimmte Anzahl von Ziffern des Hashs haben möchten, können Sie Folgendes hinzufügen:

--abbrev=n

12
2018-02-07 06:43