0

可以检查哪些git cherry提交已应用于另一个分支,通常是上游。但是,这仅返回非合并提交。也git log --cherry ...排除合并提交,因为它暗示 --no-merges.

如果一个提交已经被挑选出来-x,那么源修订包含在提交消息中,因此至少可以git log --grep进行修订并检查它是否已经存在。

如果-x在挑选樱桃时没有使用,我如何能够稳健地检测合并提交是否已经被挑选到分支?

4

1 回答 1

0

但是,这仅返回非合并提交

有充分的理由:你不能盲目地挑选合并,挑选合并的提交而不是合并的结果总是更干净、更安全。

不过,这是 Git。您可以从一个技巧或另一个技巧中挑选结果的差异,但请注意,这将导致任何冲突解决方案,并且这些是特定于该合并的,即合并自合并基础以来的两个历史,而不仅仅是一个,并且所以不是你想像这样随便变基的东西。

如果您发现自己无论如何都不得不这样做,那么扩展git cherry为您自动执行的功能并为您使用的差异生成补丁 ID 并不难,

git show -m $themerge | git patch-id 

并在其他历史记录中查找具有相同补丁 ID 的提交,但我很难想象任何人甚至会认为他们这样做会获得什么。像这样擦除 Git 的合并记录可能不会对你的编译器撒谎,但它充其量只是一种小众用法,它会禁用几乎所有 Git 的内容跟踪机制,并让你做大量的手动记录保存和手动工作从这些记录中挖掘和推断,以弥补您花费大量精力擦除的 Git 记录。

于 2021-07-22T21:28:48.300 回答