git 获取2个指定提交哈希之间的提交哈希

hivapdat  于 2023-06-04  发布在  Git
关注(0)|答案(2)|浏览(255)

我所问的与这个问题有点类似。然而,这并不能解决我的问题。我想列出在开始散列和结束散列之间存在的提交散列(包括开始和结束)。让我给予一个简单的例子。对于this仓库,如果我们转到master分支的提交历史,我希望提交在f3b628f8f9c71a2cdfa052025c4a1ed78ee4c45dd4bce13a443cf12da40a77c16c1e591f4f985b47之间。所以我希望打印以下提交-

f3b628f8f9c71a2cdfa052025c4a1ed78ee4c45d
c286db365e7374fe4d08f54077abb7fba81dd296
0bb0526b70870d57cbac9fcc8c4a7346a4ce5879
a5a7f852e45c7cadc8d1524bd4d14a1e39785aa5
9a5c33b16d07d62651ea80552e8782974c96bb8a
d4bce13a443cf12da40a77c16c1e591f4f985b47

我最初做了这样的事情-git rev-list --reverse --remotes ^f3b628f8f9c71a2cdfa052025c4a1ed78ee4c45d^ HEAD --,但它给了我不正确的结果。
在那之后,我做了这个git rev-list --reverse --ancestry-path f3b628f8f9c71a2cdfa052025c4a1ed78ee4c45d..HEAD,它给了我除了第一次(开始)提交之外的所有正确的东西。
如果有人能在这方面帮助我,我将非常感激。另外,如果可能的话,请解释一下你使用的命令,以及它是如何只选择那些提交的。谢谢你。

wz3gfoph

wz3gfoph1#

Git 2.38为--ancestry-path添加了一个可选参数,所以现在可以

git rev-list --ancestry-path=base base^! HEAD

它从baseHEAD开始,只列出从这两个tip开始的路径中带有base的提交,但不包括 * base的祖先 *。

$ git rev-list --reverse --ancestry-path=f3b6 f3b6^! d4bc
f3b628f8f9c71a2cdfa052025c4a1ed78ee4c45d
c286db365e7374fe4d08f54077abb7fba81dd296
0bb0526b70870d57cbac9fcc8c4a7346a4ce5879
a5a7f852e45c7cadc8d1524bd4d14a1e39785aa5
9a5c33b16d07d62651ea80552e8782974c96bb8a
d4bce13a443cf12da40a77c16c1e591f4f985b47
$

甚至更难理解(实际上并不是不可理解的,只是...是的,好吧,这是文字游戏,告我吧)用法可以得到得心应手。
在此添加之前,--ancestry-path base^! tip将包括base,但如果是合并,则将显示base的父节点的可从尖端到达的子节点,这些子节点没有通过base追溯祖先。

fkaflof6

fkaflof62#

git rev-list --reverse --ancestry-path f3b628f^..

在上一个例子中,你几乎做到了,但是第一个哈希值是可以从它本身到达的,所以被排除了。
最常见的范围规范是双点语法。这基本上要求Git解析一个提交可访问但另一个提交不可访问的提交范围。
https://git-scm.com/book/en/v2/Git-Tools-Revision-Selection
要包含f3b628f,请选择父提交:f3b628f^
如果你在引用的末尾放一个^(插入符号),Git会将其解析为该提交的父提交。
https://git-scm.com/book/en/v2/Git-Tools-Revision-Selection#_ancestry_references
完整散列和短散列的工作原理相同:
如果您提供SHA-1哈希值的前几个字符,Git足够聪明,能够判断出您所指的提交是什么
https://git-scm.com/book/en/v2/Git-Tools-Revision-Selection#_short_sha_1
HEAD是指:
你也可以去掉语法的一部分,让Git使用HEAD。
https://git-scm.com/book/en/v2/Git-Tools-Revision-Selection#_short_sha_1

相关问题