我正在git bisect
开会。
找出我当前正在进行的提交(SHA1 哈希)的命令是什么?git status
不提供这个。
编辑:我想打电话git log
和看第一个条目有效吗?
在会话期间,您至少有 5 种不同的方式来查看您当前已签出到工作副本中的提交git bisect
(请注意,选项 1-4 在您不进行 bisect 时也可以使用):
git show
.git log -1
.git status
.git bisect visualize
.我将在下面详细解释每个选项。
正如this answer to the general question of how to determine which commit you current has check-out (不仅仅是 during 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 提示配置为显示您已签出到工作副本中的当前分支,那么它还会显示您已检查的当前提交在平分会话期间或当您处于“分离 HEAD”状态时。在下面的示例中,我目前已c1abcde
签出:
# Prompt during a bisect
user ~ (c1abcde...)|BISECTING $
# Prompt at detached HEAD state
user ~ (c1abcde...) $
同样从 Git 版本 1.8.3+(可能更早,再次不确定)开始,运行git status
还将显示您在 bisect 期间以及处于分离 HEAD 状态时签出的提交:
$ git status
# HEAD detached at c1abcde <== RIGHT HERE
最后,当你在做 agit bisect
时,你也可以简单地使用git bisect visualize
或者它的内置别名git bisect view
来启动gitk
,这样你就可以以图形方式查看你正在进行的提交,以及到目前为止你标记为坏和好的提交。我很确定这在 1.8.3 版本之前就已经存在了,我只是不确定它是在哪个版本中引入的:
git bisect visualize
git bisect view # shorter, means same thing
你可以这样做:
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 头 273cf91b4057366a560b9ddcee8fe58d4c21e6cb
更新:
或者(如果您有标签):
(适合命名版本,不太适合传回 git。)
$ git描述 v0.1.49-localhost-ag-1-g273cf91
或者(正如 Mark 建议的那样,为了完整起见,请在此处列出):
$ 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}使用git show
,它还会向您显示提交消息,并且在不给定参数时默认为当前提交。