我继承了一些使用git log --no-merges --right-only --cherry-pick --since='2 months ago' some_tag..origin/master -- path1, path2, ...
作为初始步骤来确定some_tag
中缺少的提交的代码。主要的问题是它的速度很慢,而且没有状态。
我可以使用git log git log --since='2 months ago' origin/master -- path1, path2, ...
在指定的时间内获取所有为这些路径添加的提交,这很快。然后我想生成多个线程,然后分别检查提交,但我不确定对于单个提交的等效效果是什么。也许生成一个补丁文件并使用git apply --check
和git apply --reverse --check
,但我不确定这是否等效。
或者有更直接的方法可以做到这一点?
1条答案
按热度按时间sr4lhrrt1#
您可以对每个提交的补丁调用
git patch-id
(并行),然后比较哪些提交在两端具有相同的patch-id。我们并不完全清楚你是想移植完整的提交(在这种情况下,你应该在完整的diff上计算
patch-id
),还是只在特定的文件子集上(在这种情况下,你可以将输入diff限制为只在该路径集上)