git - 如何获取上一次提交的 SHA 编号?

标签 git

对于我的研究,我需要很少的数据,其中之一是前一次提交的 SHA 编号,即如果我提供特定的提交编号/SHA 编号,我应该能够获得它之前的 SHA 编号。

帮我用 git 命令来获得相同的结果。

最佳答案

将任何说明符翻译为哈希 ID 的命令是 git rev-parse

表示“查找提交的父提交”的语法来自 gitrevisions ,并且是 <em>commit</em>^<em>commit</em>~ — 使用您喜欢输入的任何一个。 commit 部分几乎可以是任何有效的提交说明符,包括分支名称、另一个提交哈希 ID、特殊名称 HEAD 或这些后缀表达式中的另一个。

因此:

HEAD^

HEAD 的父级,并且:

HEAD^^

HEAD^ 的父级,依此类推。

波浪线语法实际上是许多帽子后缀的压缩版本,所以:

HEAD~5

意思是一样的:

HEAD^^^^^

如果缺少波浪号后的数字,Git 会假定您指的是 1

所有这些放在一起意味着:

git rev-parse HEAD^

(或 HEAD~ )将为您提供实际的哈希 ID。但是您可以使用任何普通的 Git 命令编写 HEAD^HEAD~。同样,如果 1234567 是有效的缩短的提交哈希 ID,您可以编写 1234567^1234567~1 来引用其父提交。

(merge 提交有两个或多个父级,在这种情况下,有更多语法可用于一次提取每个父级,或引用所有父级。再次参见 gitrevisions了解详情。)

关于git - 如何获取上一次提交的 SHA 编号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42523290/

相关文章:

Git 有两个版本作为分支

git - 当我执行 "git diff"时如何获得并排差异?

Git:在未跟踪的构建目录中使用 Makefile

git - 如何避免使用 github 提交空格

git - curl 中的 Bitbucket 管道变量

git - 如何检索 git pull 历史记录

git - 在一个项目中具有多个 repos(git/svn 等)的 Emacs 射弹

git - 如何git推送到具有不同基本名称的远程跟踪分支?

git - 如何推送到不同项目中的分支

git - 撤消 git 过滤器分支