Git Commit Hash of Last Commit不包括合并

时间:2019-08-28 21:10:59

标签: git

我正在尝试获取除合并提交之外的最后一次提交的Git提交哈希。

我了解以下命令获取HEAD的提交哈希:

git rev-parse HEAD --short

但是,如果最后一次提交是合并,那么我将获得该提交的哈希值。这是一个问题,因为我正在使用CI / CD工具用提交哈希标记工件,并且由于合并了“拉取请求”而没有任何区别。

有什么方法可以获取最后的代码更改提交?

2 个答案:

答案 0 :(得分:1)

您可以使用以下命令获取提交的简短哈希值:使用格式和标志记录合并的最后一次提交:

git log -n 1 --no-merges --pretty=format:%h 

工作方式:

  • 命令git log -n 1的最后一次提交(您也可以使用快捷键git log -1,但我认为它的可读性较差)
  • 接下来,您需要省略合并,请使用--no-merges标志,
  • 最后设置带有短哈希的格式('%h'代表documentation中的缩写提交哈希)。

为什么以前的answergit rev-list不适合我?因为当我需要短时它会显示长哈希(我认为主题作者也需要它,因为他尝试使用--short标志)。

我可以使用与git log命令相同的方式添加格式:

git rev-list --no-merges -n 1 --pretty=format:%h HEAD

但是它会在下面记录长哈希和短哈希。

答案 1 :(得分:0)

经过研究,该命令将接受最新的提交排除合并

git rev-list --no-merges -n 1 HEAD