Antworten:
Sie haben mindestens fünf verschiedene Möglichkeiten, um das Commit anzuzeigen, das Sie derzeit während einer git bisectSitzung 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.git status.git bisect visualize.Ich werde jede Option unten im Detail erklären.
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 showmit der -sOption die Patch-Ausgabe unterdrücken:
$ git show --oneline -s
a9874fd Merge branch 'epic-feature'
Sie können auch einfach git log -1herausfinden, auf welchem Commit Sie sich gerade befinden.
$ git log -1 --oneline
c1abcde Add feature-003
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 c1abcdeausgecheckt:
# Prompt during a bisect
user ~ (c1abcde...)|BISECTING $
# Prompt at detached HEAD state
user ~ (c1abcde...) $
Ab Git-Version 1.8.3+ (und möglicherweise früher, wieder nicht sicher) git statuszeigt 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
Während Sie a ausführen git bisect, können Sie zum Starten auch einfach git bisect visualizeoder den integrierten Alias verwenden git bisect view, um gitkgrafisch 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 statusDie Commit-ID wird nur angezeigt, wenn Sie sich im getrennten Zustand befinden. ansonsten heißt es "Auf Zweig was auch immer ". git showfunktioniert aber
Sie können einfach tun:
git rev-parse HEAD
Um es etwas näher zu erläutern: git rev-parseDies ist der grundlegende Befehl von git zum Interpretieren einer der exotischen Methoden, mit denen Sie den Namen eines Commits angeben können, und HEADein Verweis auf Ihr aktuelles Commit oder Ihren aktuellen Zweig. (In einer git bisectSitzung 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:
git show
... zeigt standardmäßig das Commit an, HEADauf das verwiesen wird . Für eine präzisere Version können Sie Folgendes tun:
$ git show --oneline -s
c0235b7 Autorotate uploaded images based on EXIF orientation
git rev-parse HEADkeine Verarbeitung im Vergleich zu allen Müllalternativen erforderlich.
$ git rev-parse HEAD 273cf91b4057366a560b9ddcee8fe58d4c21e6cb
Aktualisieren:
Alternativ (wenn Sie Tags haben):
(Gut für die Benennung einer Version, nicht sehr gut für die Rückgabe an git.)
$ git beschreiben v0.1.49-localhost-ag-1-g273cf91
Oder (wie Mark vorgeschlagen hat, der Vollständigkeit halber hier auflisten):
$ git show --oneline -s c0235b7 Autorotieren Sie hochgeladene Bilder basierend auf der EXIF-Ausrichtung
Wenn Sie nur eine einfache Information extrahieren möchten, können Sie diese git showmit 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:
$ git show --format="%h" --no-patch
4b703eb
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 :
$ GIT_COMMIT="$(git show --format="%h" --no-patch)"
$ echo $GIT_COMMIT
4b703eb
Die vollständige Liste der möglichen Aktionen finden Sie ingit 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}shownichts für die Verzweigung .
git log -p -S <search>.