gpt4 book ai didi

git cherry 混淆 - 不像文档中描述的那样工作

转载 作者:太空狗 更新时间:2023-10-29 13:25:00 24 4
gpt4 key购买 nike

文档说:“因为 git-cherry 比较的是变更集而不是提交 ID (sha1),所以您可以使用 git-cherry 来查明您在本地所做的提交是否已在不同的提交 ID 下应用。”

让我们看看:

$ git cherry master release-1.1.0 | head -1
- 533e2559342910fbffa2be5b38fdd7f2ddb2ed53
$ git show 533e2559342910fbffa2be5b38fdd7f2ddb2ed53
...
(cherry picked from commit 409c61b3304373a73c787fdf9c08cc338934b74d)
...

git show 显示 409c.. 和 533e 的相同变更集

$ git br --contains 533e2559342910fbffa2be5b38fdd7f2ddb2ed53
release-1.1.0
$ git br --contains 409c61b3304373a73c787fdf9c08cc338934b74d
master
release-1.0.4

这意味着变更集同时在 master 和 release-1.1.0 中。那么 git cherry 怎么会显示 533e.. 呢?

最佳答案

它还说“提交与它们的补丁 ID 进行比较,补丁 ID 从 git-patch-id 程序中获得。”。当应用您精心挑选的 diff 时,它是否可能最终成为一个略有不同的 diff?

在这种情况下,不仅提交 ID 会不同,补丁 ID 也会不同,因为 git-patch-id 将为提交报告不同的补丁 ID,因此它们不会被视为在彼此的分支中。

检查这个很容易:

git show 533e2559342910fbffa2be5b38fdd7f2ddb2ed53 | git-patch-id
git show 409c61b3304373a73c787fdf9c08cc338934b74d | git-patch-id

如果 git-patch-id 返回的第一个 sha1 在两次运行之间不同,那就是发生了什么。

读者注意——我还没有尝试过我的理论,但这就是我解释手册页的方式。

关于git cherry 混淆 - 不像文档中描述的那样工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1037513/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com