使用git cherry可以检查哪些提交已经应用到另一个分支,通常是上游分支。但是,这只返回非合并提交。git log --cherry ...也排除了合并提交,因为它暗示了--no-merges。
如果使用-x精挑细选了一个提交,那么源修订将包含在提交消息中,因此至少可以对修订执行git log --grep操作,并检查它是否已经存在。
如果在挑选时没有使用-x,我如何可靠地检测合并提交是否已经被挑选到分支?
发布于 2021-07-23 05:28:48
但是,这只返回非合并提交
有一个很好的理由:你不能盲目地选择合并,选择合并的提交而不是合并的结果总是更干净和安全的。
不过,这是Git。你可以从一个技巧或另一个技巧中挑选结果的不同之处,但请注意,这将在任何冲突解决方案中烘焙,并且这些冲突解决方案是特定于该合并的,即合并合并基础以来的两个历史,而不仅仅是一个,所以不是你想要像这样随意改变基址的东西。
如果你以某种方式发现自己不得不这样做,那么扩展git cherry为你自动化的功能并为你所使用的diffs生成补丁‘d并不难,
git show -m $themerge | git patch-id 并在其他历史记录中查找具有相同补丁id的提交,但我很难想象任何人会认为这样做会获得什么。擦除Git的这种合并记录可能与对编译器撒谎不太一样,但这充其量只是一种利基用途,几乎禁用了所有Git的内容跟踪机制,给你留下了大量的工作,需要手动保存记录,手动从这些记录中挖掘和推断,以弥补你花了这么多精力擦除的Git记录。
https://stackoverflow.com/questions/68489520
复制相似问题