文档中说:“因为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..?
发布于 2009-06-24 16:22:29
它还说“将提交数与它们的补丁id进行比较,这是从git- patch -id程序中获得的。”当应用你精挑细选的diff时,它最终会不会是一个略微不同的diff?
在这种情况下,不仅提交id不同,而且作为git- patch -id的补丁id将为提交报告不同的补丁id,因此它们不会被认为是在彼此的分支中。
这一点很容易检查:
git show 533e2559342910fbffa2be5b38fdd7f2ddb2ed53 | git-patch-id
git show 409c61b3304373a73c787fdf9c08cc338934b74d | git-patch-id如果git- sha1 -id返回的第一个补丁在两次运行之间不同,就会发生这种情况。
警告lector --我还没有尝试过我的理论,但这就是我解释手册页的方式。
https://stackoverflow.com/questions/1037513
复制相似问题