1

私は現在、OSSプロジェクトのトランクからフォークに機能を選択しようとしています。どちらのリポジトリもgitを使用しており、トランクをブランチとしてフォークにインポートしているので、作業が簡単になります。

私が取っているアプローチは、1つのブランチから別のブランチに関連するすべてのコミットを選択しようとすることです。これは、単純なマージを行うことは不可能であるためです。分岐したものが多すぎます。

コミットのリストを生成するために、私はgit-log実行する2つのコマンドを特定しました。

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

これは、project-trunkブランチに「Foo」という単語が含まれているファイルのログを提供することを目的としています。これはかなり良い出発点ですが、関連する他のコミットがあることがわかりました。幸いなことに、それらは通常、コミットログに識別作業があります。だから私が使用しているこれらを見つけるために:

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

project-trunkこれにより、作業「バー」を含む ブランチのログが得られます。

問題は、これら両方のコマンドの和集合を時系列で含むマスターリストが本当に必要なことです。マニュアルを読みましたgit rev-listが、やりたいことがわかりません。

このように2つの別々の条件を結合することは可能ですか?git-logそうでない場合は、2つのコマンドの出力を時系列で結合する簡単な方法はありますか?

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 に答える