小编典典

查找当前在 Git 中签出的提交

all

我正在git bisect开会。

找出我当前正在进行的提交(SHA1 哈希)的命令是什么?git status不提供这个。

编辑:我想打电话git log和看第一个条目有效吗?


阅读 57

收藏
2022-06-21

共1个答案

小编典典

在会话期间,您至少有 5 种不同的方式来查看您当前已签出到工作副本中的提交git bisect请注意,选项 1-4 在您不进行 bisect
时也可以使用
):

  1. git show.
  2. git log -1.
  3. Bash 提示。
  4. git status.
  5. git bisect visualize.

我将在下面详细解释每个选项。

选项 1:git 显示

正如this answer to the general question of how to
determine which commit you current has check-out (不仅仅是在git bisect)
中解释的那样,您可以使用git show选项-s来抑制补丁输出:

$ git show --oneline -s
a9874fd Merge branch 'epic-feature'

选项 2: git log -1

您也可以简单git log -1地找出您当前正在进行的提交。

$ git log -1 --oneline
c1abcde Add feature-003

选项 3:Bash 提示符

在 Git 版本 1.8.3+(或者它是更早的版本?)中,如果您将 Bash
提示配置为显示您已签出到工作副本中的当前分支,那么它还会显示您已检查的当前提交在平分会话期间或当您处于“分离
HEAD”状态时。在下面的示例中,我目前已c1abcde签出:

# Prompt during a bisect
user ~ (c1abcde...)|BISECTING $

# Prompt at detached HEAD state 
user ~ (c1abcde...) $

选项 4:git 状态

同样从 Git 版本 1.8.3+(可能更早,再次不确定)开始,运行git status还将显示您在 bisect 期间以及处于分离 HEAD
状态时签出的提交:

$ git status
# HEAD detached at c1abcde <== RIGHT HERE

选项 5:git bisect 可视化

最后,当你在做 agit bisect时,你也可以简单地使用git bisect visualize或者它的内置别名git bisect view来启动gitk,这样你就可以以图形方式查看你正在进行的提交,以及到目前为止你标记为坏和好的提交。我很确定这在 1.8.3
版本之前就已经存在了,我只是不确定它是在哪个版本中引入的:

git bisect visualize 
git bisect view # shorter, means same thing

在此处输入图像描述

2022-06-21