gpt4 book ai didi

git - 单个丢失提交的 git-cherry 等价物是什么?

转载 作者:行者123 更新时间:2023-12-04 09:36:52 24 4
gpt4 key购买 nike

如何检查单个提交是否已应用于特定分支?
git-cherry 的文档为例:

       $ git log --graph --oneline --decorate --boundary origin/master...topic
* 7654321 (origin/master) upstream tip commit
[... snip some other commits ...]
* cccc111 cherry-pick of C
* aaaa111 cherry-pick of A
[... snip a lot more that has happened ...]
| * cccc000 (topic) commit C
| * bbbb000 commit B
| * aaaa000 commit A
|/
o 1234567 branch point

$ git cherry origin/master topic
- cccc000... commit C
+ bbbb000... commit B
- aaaa000... commit A
我如何知道 cccc000- cccc111 具有相同的内容而无需处理整个树?这可能吗?
请注意, git-cherry 依赖于 补丁内容 (diff) ,这是问题的关键。

最佳答案

git log有一个 --cherry-mark添加有关对称差异信息的选项(又名“3 点运算符”A...B)
尝试运行:

git log --oneline --graph --boundary --cherry-mark master...topic
您应该会看到以 + 为前缀的唯一提交(或 *--graph 选项打开时),并且提交出现在两侧,前缀为 = .

如果你想知道提交是如何匹配的: git patch-id计算cherry-pick/rebase 使用的结果。 git patch-id期待 STDIN 上的补丁(由 git showgit diff 生成):
$ git show <commit-ish> | git patch-id
<hash for patch> <hash of input revision, if it can determine a revision>
例如:您可以查看 patch-id A...B 中所有单个提交的 s :
git rev-list origin/master...forkpoint | while read sha1; do
git show $sha1 | git patch-id
done
您可以在脚本中使用此结果,以更明确地打印提交的链接方式。

关于git - 单个丢失提交的 git-cherry 等价物是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62534666/

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