显示git提交日志时如何忽略cherry-pick的提交

2 篇文章 0 订阅

假设有2个分支,一个是master分支,一个是b1分支。在b1分支上有1, 2, 3, 4四个提交。master分支上有自己的提交a, b和c,同时也cherry-pick了b1分支上的1, 2提交,称之为1‘, 2'。b1分支和master分支有一个公共的祖先B。git提交历史如下图。

                    1---2---3---4     (b1)
                   /                     
                  B--a--1'---2'---b---c    (master)

此时如何知道b1分支上还有哪几个提交没有在master上?(应该是3和4提交没有在master分支上)

可以使用命令(注意是用三点表示的git提交范围):git log --cherry-pick --left-only --no-merges b1...master

其中:

  --cherry-pick: 指示忽略cherry-pick的提交,它会先比较commit-id,然后再比较patch-id来确定是否为cherry-pick提交。

 --left-only: 只显示左边分支上的提交,默认是显示两边分支上的提交

 --no-merges: 不显示合并点的提交

注意:如果在cherry-pick时产生了冲突,解决冲突后的提交,此时patch-id发生了变化,不会被认为是cherry-pick提交。


patch-id是对修改集(change set)得到的一个hash值,可以用下面的命令看一个提交的patch-id:

               git show <commit> | git patch-id

其中<commit>可以是一个提交的hash值,或者用HEAD表示最后的提交。输出的结果中,第一个为patch-id,第二个为commit-id。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值