回答:
git bisect
セッション中に作業コピーに現在チェックアウトしているコミットを表示するには、少なくとも5つの異なる方法があります(オプション1から4は、2分割を実行していない場合でも機能することに注意してください)。
git show
。git log -1
。git status
。git bisect visualize
。以下で、各オプションについて詳しく説明します。
で説明したように、この答えあなたが現在チェックアウトしている(だけでなく、コミット中に決定する方法の一般的な質問にgit bisect
)、あなたは使用することができるgit show
と-s
抑止パッチ出力のオプション:
$ git show --oneline -s
a9874fd Merge branch 'epic-feature'
また、git log -1
現在実行しているコミットを確認することもできます。
$ git log -1 --oneline
c1abcde Add feature-003
Gitバージョン1.8.3以降(または以前のバージョンでしたか?)で、作業コピーにチェックアウトした現在のブランチを表示するようにBashプロンプトを構成している場合は、チェックした現在のコミットも表示されます。二等分セッションの間、または「切り離されたヘッド」状態にあるとき。以下の例では、私は現在c1abcde
チェックアウトしています:
# Prompt during a bisect
user ~ (c1abcde...)|BISECTING $
# Prompt at detached HEAD state
user ~ (c1abcde...) $
また、Gitバージョン1.8.3以降(および以前の可能性git status
もありますが、これも不確かです)では、実行すると、バイセクト時およびデタッチされたHEAD状態のときにチェックアウトしたコミットも表示されます。
$ git status
# HEAD detached at c1abcde <== RIGHT HERE
最後に、を実行している間、またはその組み込みエイリアスをgit bisect
使用して起動することもできます。これにより、現在コミットしているコミット、およびこれまでに不正で良好としてマークしたコミットをグラフィカルに表示できます。これがバージョン1.8.3よりもずっと前に存在していたと私はかなり確信していますが、どのバージョンで導入されたかはわかりません:git bisect visualize
git bisect view
gitk
git bisect visualize
git bisect view # shorter, means same thing
git status
デタッチ状態でない限り、コミットIDは表示されません。それ以外の場合は、「ブランチ上は何でも」と表示されます。git show
でも動作します
あなたはただ行うことができます:
git rev-parse HEAD
さらにビットを説明するには:git rev-parse
解釈するためのgitの基本的なコマンドでコミットの名前を指定することができるというエキゾチックな方法のいずれかをしてHEAD
、あなたの現在のコミットやブランチへの参照です。(git bisect
セッションでは、ブランチではなくコミット(「デタッチされたHEAD」)を直接指します。)
代わりに(そして覚えやすく)は次のようにするだけです:
git show
...デフォルトでは、HEAD
指すコミットが表示されます。より簡潔なバージョンでは、次のことができます。
$ git show --oneline -s
c0235b7 Autorotate uploaded images based on EXIF orientation
git rev-parse HEAD
、ガベージの代替案ではなく、処理は必要ありません。
$ git rev-parse HEAD 273cf91b4057366a560b9ddcee8fe58d4c21e6cb
更新:
または(タグがある場合):
(バージョンに名前を付けるのに適していますが、gitに戻すのにはあまり適していません。)
$ git説明 v0.1.49-localhost-ag-1-g273cf91
または(マークが示唆したように、完全を期すためにここにリストします):
$ git show --oneline -s c0235b7 EXIFの向きに基づいてアップロードされた画像を自動回転
単純な情報だけを抽出したい場合git show
は、--format=<string>
オプションを使用してそれを取得できます。そして、との差分を与えないように要求し--no-patch
ます。つまり、たいていの場合、単一のフィールドである可能性のある、printfスタイルの出力を取得できます。
たとえば、短縮されたハッシュ(%h
)だけを取得するには、次のようにします。
$ git show --format="%h" --no-patch
4b703eb
これをbashの環境変数に保存する場合(人々が実行する可能性が高いこと)、次の$()
構文を使用できます。
$ GIT_COMMIT="$(git show --format="%h" --no-patch)"
$ echo $GIT_COMMIT
4b703eb
できることgit show --help
の完全なリストはにあります。しかし、ここに役立つかもしれないプロパティの省略されたリストがあります:
%H
ハッシュをコミットする%h
短縮されたコミットハッシュ%T
ツリーハッシュ%t
省略されたツリーハッシュ%P
親ハッシュ%p
省略された親ハッシュ%an
著者名%ae
著者のメール%at
作成者の日付、UNIXタイムスタンプ%aI
著者の日付、厳密なISO 8601形式%cn
コミッター名%ce
コミッターのメール%ct
コミッターの日付、UNIXタイムスタンプ%cI
コミッターの日付、厳密なISO 8601形式%s
件名%f
ファイル名に適したサニタイズされた件名%gD
reflogセレクター、例:refs / stash @ {1}%gd
reflogセレクターの短縮(例:stash @ {1})show
はありません。
git log -p -S <search>
ます。