我目前正在尝试从一个OSS项目的主干中挑选一个特性到一个分支中。这两个存储库都使用git,而我将主干作为分支导入到fork中,因此它应该会让事情变得简单。
我采取的方法是尝试从一个分支到另一个分支挑选所有相关的提交,因为我不可能只做一个直接的合并:有太多的事情已经分叉了。
为了生成提交列表,我已经确定了要运行的两个git-log命令:
git log --branch project-trunk **/*Foo* 这是为了向我提供project-trunk分支上任何包含单词"Foo“的文件的日志。这是一个非常好的起点,但我发现还有其他相关的提交:幸运的是,它们通常在提交日志中有一个标识工作。因此,为了找到我正在使用的这些:
git log --branch project-trunk --grep Bar这为我提供了包含工作“project-trunk”的分支栏上的所有日志。
问题是,我真的需要一个按时间顺序排列的主列表,其中包含这两个命令的联合。我已经阅读了git rev-list手册,但我看不到任何方法来做我想做的事情。
像这样合并两个分离的条件是可能的吗?如果没有,有没有一种简单的方法来按时间顺序联合两个git-log命令的输出呢?
发布于 2010-12-08 18:45:21
我变得不耐烦了,又玩了一会儿,我想出了以下几个似乎有效的方法:
(git rev-list --grep=Bar heads/project-trunk; git rev-list heads/project-trunk **/*Foo*) | git log --stdin --no-walk --reverse如果有人可以改进它,请让我知道!希望这对将来的其他人有所帮助。
https://stackoverflow.com/questions/4386230
复制相似问题