1

我目前正在尝试从 OSS 项目的主干中挑选一个功能到一个分支中。两个存储库都使用 git,并且我将主干作为分支导入到 fork 中,因此它应该使事情变得简单易用。

我正在采取的方法是尝试从一个分支到另一个分支中挑选所有相关的提交,因为我不可能直接进行合并:有太多事情发生了分歧。

为了生成提交列表,我应该从cherry-pick开始,我已经确定了两个git-log要运行的命令:

git log --branch project-trunk **/*Foo* 

这是为了给我在project-trunk分支上包含单词“Foo”的任何文件的日志。这是一个很好的起点,但我发现还有其他相关的提交:幸运的是,它们通常在提交日志中有识别工作。所以要找到这些我正在使用:

git log --branch project-trunk --grep Bar

这为我提供了project-trunk包含工作“Bar”的分支上的任何日志。

问题是我真的需要一个主列表,按时间顺序排列包含这两个命令的联合。我已经阅读了git rev-list手册,但我看不到任何做我想做的事情的方法。

是否可以像这样合并两个单独的条件?如果没有,是否有一种简单的方法可以git-log按时间顺序合并两个命令的输出?

4

1 回答 1

0

我不耐烦了,玩得更久了,我想出了以下似乎可行的方法:

(git rev-list --grep=Bar heads/project-trunk; git rev-list heads/project-trunk **/*Foo*) | git log --stdin --no-walk --reverse

如果有人可以改进它,请告诉我!希望这对将来的其他人有所帮助...

于 2010-12-08T10:45:20.883 回答