文档说:"因为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)
...
Run Code Online (Sandbox Code Playgroud)
git show显示了409c ..和533e的相同变更集
$ git br --contains 533e2559342910fbffa2be5b38fdd7f2ddb2ed53
release-1.1.0
$ git br --contains 409c61b3304373a73c787fdf9c08cc338934b74d
master
release-1.0.4
Run Code Online (Sandbox Code Playgroud)
这意味着变更集同时包含master和release-1.1.0.那么为什么git cherry显示533e ..?
它还说“提交与从 git-patch-id 程序获得的补丁 ID 进行比较。”。当应用你精心挑选的差异时,它最终是否可能会是一个略有不同的差异?
在这种情况下,不仅提交 ID 会不同,补丁 ID 也会不同,因为 git-patch-id 将报告提交的不同补丁 ID,因此它们不会被视为位于彼此的分支中。
检查这一点很容易:
git show 533e2559342910fbffa2be5b38fdd7f2ddb2ed53 | git-patch-id
git show 409c61b3304373a73c787fdf9c08cc338934b74d | git-patch-id
Run Code Online (Sandbox Code Playgroud)
如果 git-patch-id 返回的第一个 sha1 在两次运行之间不同,则说明发生了这种情况。
警告讲师——我还没有尝试过我的理论,但这就是我解释手册页的方式。
| 归档时间: |
|
| 查看次数: |
540 次 |
| 最近记录: |