Sie haben mindestens fünf verschiedene Möglichkeiten, um das Commit anzuzeigen, das Sie derzeit während einer git bisect
Sitzung in Ihrer Arbeitskopie ausgecheckt haben ( beachten Sie, dass die Optionen 1 bis 4 auch funktionieren, wenn Sie keine Halbierung durchführen ):
git show
.
git log -1
.
- Bash-Eingabeaufforderung.
git status
.
git bisect visualize
.
Ich werde jede Option unten im Detail erklären.
Option 1: Git Show
Wie in dieser Antwort auf die allgemeine Frage erläutert, wie Sie feststellen können, welches Commit Sie gerade ausgecheckt haben (nicht nur während git bisect
), können Sie git show
mit der -s
Option die Patch-Ausgabe unterdrücken:
$ git show --oneline -s
a9874fd Merge branch 'epic-feature'
Option 2: Git Log -1
Sie können auch einfach git log -1
herausfinden, auf welchem Commit Sie sich gerade befinden.
$ git log -1 --oneline
c1abcde Add feature-003
Option 3: Bash-Eingabeaufforderung
Wenn Sie in Git Version 1.8.3+ (oder war es eine frühere Version?) Ihre Bash-Eingabeaufforderung so konfiguriert haben, dass der aktuelle Zweig, den Sie ausgecheckt haben, in Ihrer Arbeitskopie angezeigt wird, wird auch das aktuelle Commit angezeigt, das Sie überprüft haben während einer Halbierungssitzung oder wenn Sie sich in einem "losgelösten KOPF" -Zustand befinden. Im folgenden Beispiel habe ich derzeit c1abcde
ausgecheckt:
# Prompt during a bisect
user ~ (c1abcde...)|BISECTING $
# Prompt at detached HEAD state
user ~ (c1abcde...) $
Option 4: Git-Status
Ab Git-Version 1.8.3+ (und möglicherweise früher, wieder nicht sicher) git status
zeigt Ihnen das Ausführen auch, welches Commit Sie während einer Halbierung ausgecheckt haben und wenn Sie sich im getrennten HEAD-Status befinden:
$ git status
# HEAD detached at c1abcde <== RIGHT HERE
Option 5: Git-Halbierung visualisieren
Während Sie a ausführen git bisect
, können Sie zum Starten auch einfach git bisect visualize
oder den integrierten Alias verwenden git bisect view
, um gitk
grafisch anzuzeigen, auf welchem Commit Sie sich befinden und welche Commits Sie bisher als schlecht und gut markiert haben. Ich bin mir ziemlich sicher, dass dies lange vor Version 1.8.3 existierte. Ich bin mir nur nicht sicher, in welcher Version es eingeführt wurde:
git bisect visualize
git bisect view # shorter, means same thing
git log -p -S <search>
.git status
Die Commit-ID wird nur angezeigt, wenn Sie sich im getrennten Zustand befinden. ansonsten heißt es "Auf Zweig was auch immer ".git show
funktioniert aberSie können einfach tun:
Um es etwas näher zu erläutern:
git rev-parse
Dies ist der grundlegende Befehl von git zum Interpretieren einer der exotischen Methoden, mit denen Sie den Namen eines Commits angeben können, undHEAD
ein Verweis auf Ihr aktuelles Commit oder Ihren aktuellen Zweig. (In einergit bisect
Sitzung verweist es direkt auf ein Commit ("losgelöster HEAD") und nicht auf einen Zweig.)Alternativ (und leichter zu merken) wäre es einfach zu tun:
... zeigt standardmäßig das Commit an,
HEAD
auf das verwiesen wird . Für eine präzisere Version können Sie Folgendes tun:quelle
git rev-parse HEAD
keine Verarbeitung im Vergleich zu allen Müllalternativen erforderlich.Aktualisieren:
Alternativ (wenn Sie Tags haben):
(Gut für die Benennung einer Version, nicht sehr gut für die Rückgabe an git.)
Oder (wie Mark vorgeschlagen hat, der Vollständigkeit halber hier auflisten):
quelle
Wenn Sie nur eine einfache Information extrahieren möchten, können Sie diese
git show
mit der--format=<string>
Option abrufen ... und sie bitten, Ihnen den Unterschied nicht mit zu geben--no-patch
. Dies bedeutet, dass Sie eine druckbare Ausgabe von allem erhalten können, was Sie möchten. Dies kann häufig ein einzelnes Feld sein.Um nur den verkürzten Hash (
%h
) zu erhalten, könnte man zum Beispiel sagen:Wenn Sie dies in einer Umgebungsvariablen in bash speichern möchten (eine Sache, die die Leute wahrscheinlich tun möchten), können Sie die folgende
$()
Syntax verwenden :Die vollständige Liste der möglichen Aktionen finden Sie in
git show --help
. Aber hier ist eine abgekürzte Liste von Eigenschaften, die nützlich sein könnten:%H
Hash begehen%h
abgekürzter Commit-Hash%T
Baumhasch%t
abgekürzter Baum-Hash%P
Eltern-Hashes%p
abgekürzte Eltern-Hashes%an
Autorenname%ae
Autor E-Mail%at
Autorendatum, UNIX-Zeitstempel%aI
Autorendatum, striktes ISO 8601-Format%cn
Name des Committers%ce
Committer-E-Mail%ct
Committer-Datum, UNIX-Zeitstempel%cI
Committer-Datum, striktes ISO 8601-Format%s
Gegenstand%f
bereinigte Betreffzeile, geeignet für einen Dateinamen%gD
Reflog-Selektor, z. B. refs / stash @ {1}%gd
verkürzter Reflog-Selektor, z. B. stash @ {1}quelle
show
nichts für die Verzweigung .Verwenden
git show
Sie diese Option , um auch die Festschreibungsnachricht anzuzeigen, und verwenden Sie standardmäßig die aktuelle Festschreibungsnachricht, wenn keine Argumente angegeben werden.quelle