首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >对于一个缺失的提交,git-cherry等效于什么?

对于一个缺失的提交,git-cherry等效于什么?
EN

Stack Overflow用户
提问于 2020-06-23 12:24:04
回答 1查看 78关注 0票数 2

如何检查单个提交是否已应用于特定分支?

git-cherry文档为例:

代码语言:javascript
复制
       $ 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),这是问题的关键。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-06-23 12:45:11

git log有一个--cherry-mark选项,它添加关于对称差异的信息(即“3点运算符”A...B)。

试着跑:

代码语言:javascript
复制
git log --oneline --graph --boundary --cherry-mark master...topic

您应该看到以+为前缀的唯一提交(或在--graph选项打开时为* ),并在双方都提交以=为前缀的提交。

如果您想知道提交是如何匹配的:git patch-id计算樱桃挑选/重基所使用的结果。

git patch-id期望STDIN上有一个修补程序(由git showgit diff生成):

代码语言:javascript
复制
$ git show <commit-ish> | git patch-id
<hash for patch> <hash of input revision, if it can determine a revision>

例如:您可以在patch-id中查看所有单独提交的A...B

代码语言:javascript
复制
git rev-list origin/master...forkpoint | while read sha1; do
    git show $sha1 | git patch-id
done

您可以在脚本中使用此结果,以更明确地打印如何链接提交。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62534666

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档