为什么git的日志--cherry挑选不删除相当于提交?(Why is git log --cher

2019-08-19 10:25发布

我一直在尝试使用

git log --no-merges --cherry-pick --right-only master...my-branch

生成是在我的分支提交列表,但不是在主(按照git的日志文件)。 然而,仍然有在列表中来了许多等同提交。 如果我告诉他们,他们的补丁,有来自提交ID除了没有区别。

git show 16cbd0e47406a4f7acbd6dc13f02d74d0b6a7621 >patcha
git show c53c7c32dcd84bfa7096a50b27738458e84536d5 >patchb

diff patcha patchb
1c1
< commit 16cbd0e47406a4f7acbd6dc13f02d74d0b6a7621
---
> commit c53c7c32dcd84bfa7096a50b27738458e84536d5

甚至git patch-id显示他们为等价的:

git show c53c7c32dcd84bfa7096a50b27738458e84536d5 | git patch-id
2b5504fb9a8622b4326195d88c7a20f29701e62b c53c7c32dcd84bfa7096a50b27738458e84536d5
git show 16cbd0e47406a4f7acbd6dc13f02d74d0b6a7621 | git patch-id
2b5504fb9a8622b4326195d88c7a20f29701e62b 16cbd0e47406a4f7acbd6dc13f02d74d0b6a7621

如何git log --cherry-pick不挑这些了为重复?

Answer 1:

你有没有合并掌握到你的分支,因为这样做的樱花选秀权? --cherry-pick工作首先通过匹配提交ID,然后如果失败,寻找补丁ID。 如果你已经掌握合并到你的分支,那么你现在可以在你的分支和樱桃采摘版本的实际承诺。 因此,它会发现提交ID,然后进行报告精挑细选版本。

我常常想,如果GIT中应经常检查这两个,但是这可能是一个相当大的性能损失。



Answer 2:

我常常想,如果GIT中应经常检查这两个,但是这可能是一个相当大的性能损失。

这种行为现在是(GIT 2.11,Q4 2016)比以前更快。

见提交7c81040 (2016年9月12日),并提交5a29cbc通过(2016年9月9日) 杰夫·金( peff ) 。
帮助-通过: 约翰内斯Schindelin( dscho ) 。
(通过合并JUNIOÇ滨野- gitster -在提交f0a84de 9月21日2016)

patch-ids :拒绝计算patch-id为合并提交

git log --cherry-pick用于包括合并”承诺为应聘者与其他提交匹配起来,从而耽误了不少时间。 该补丁ID生成逻辑已被更新以忽略合并,以避免浪费。

[...]我们可能会花很多额外的时间计算这些合并的diff。
在启发本贴剂,“的情况下git format-patch --cherry-pick ”,从在3分钟内下降到小于3秒。



文章来源: Why is git log --cherry-pick not removing equivalent commits?