git - 查找当前在 Git 中 checkout 的提交

标签 git

我正在执行 git bisect session 。

找出我当前所在的提交(SHA1 哈希)的命令是什么? git status 没有提供这个。

编辑:我想调用 git log 并查看第一个条目是否有效?

最佳答案

git bisect session 期间,您至少有 5 种不同的方式来查看当前已 check out 到工作副本中的提交(请注意,选项 1-4 也适用于您'没有做平分):

  1. git show.
  2. git log -1.
  3. Bash 提示。
  4. git 状态
  5. git bisect 可视化

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

选项一:git show

this answer 中所述对于如何确定您当前 checkout 的提交的一般问题(不仅仅是在 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 提示配置为显示您已 check out 到工作副本的当前分支,那么它也会显示当前提交您在对分 session 期间或处于“分离的 HEAD”状态时已 checkout 。在下面的示例中,我目前已 check out c1abcde:

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

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

选项 4:git status

同样从 Git 版本 1.8.3+(可能更早,再次不确定)开始,运行 git status 也会显示你在二等分期间 checkout 的提交以及何时处于分离的 HEAD 状态:

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

选项 5:git bisect visualize

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

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

enter image description here

关于git - 查找当前在 Git 中 checkout 的提交,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11168141/

相关文章:

git - 测量 git 存储库的大小/MB 增长率?

Git 命令在 init 容器中不起作用

git - 如何写symfony2有效

用于交互式应用补丁的 Git 单行代码

git - 使用 git grep 浏览文件的先前版本?

Git - 在 merge 期间忽略文件

git - git clone停在 “Initializing NSS with certpath”上

git - Subversion 中遗漏版本的可能性(研究环境)

git - 取消提交的更改,但将新文件保留在索引中

git - 无法从 github 提取更改 - 权限被拒绝(公钥)。致命: Could not read from remote repository