如何查找Git中当前签出的提交?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (43)

我正处在一个git bisect会议。

要找出我目前使用的是哪个提交(SHA 1散列)的命令是什么?git status不提供这个。

我想是调用git log第一次进入工作?

提问于
用户回答回答于

至少有5种不同的方法来查看当前已签入工作副本的提交。git bisect会议(请注意,选项1-4也将在不进行二分时工作。)):

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

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

选项1:GIT显示

关于如何确定当前已签出的提交的一般问题(不仅仅是在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提示符配置为显示已签入工作副本中的当前分支,那么它还将显示您在二分会话期间或在“分离头”状态下签出的当前提交。在下面的示例中,我目前c1abcde退房:

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

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

备选案文4:GIT状态

也是在Git版本1.8.3+(可能更早的时候,也不确定),运行git status还将向您展示在二分期间以及当你处于分离头状态时签出的提交:

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

选项5:Git均分可视化

最后,当你做一个git bisectgit 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会话,它直接指向提交(“分离的头”),而不是分支。

或者(并且更容易记住)只是做:

git show

默认情况下显示提交HEAD指向。为了获得更简洁的版本,可以这样做:

$ git show --oneline -s
c0235b7 Autorotate uploaded images based on EXIF orientation

扫码关注云+社区