2012-11-01 3 views
8

それだ一種の私は1つを除いて、ブランチからのすべてのコミットを選ぶが、私が何をしたいのですが桜にしたいように、1つのコマンドで...私たちは、ブランチを作成するリリースを、カットしますGitのブランチからの1つの変更以外のすべての変更をマージする最も簡単な方法は何ですか?

リリース•

は1つの番号に枝の上に、すべての私たちのPOMSにバージョン番号を変更し、マスター上の異なる数私は枝に他の変更の数を犯し、それらをコピーしたいきます

へマスターに戻ってきます

•ブランチをmasterに戻しました。コードが変更されてもバージョン番号が変更され、すべてのPOMに競合が発生する

すべてのpomファイルをマージ前のコンテンツに戻し、マージの結果としてコミットする簡単な方法はありますか?

+0

あなたがマージしたいが、矛盾するファイルをマージしたくない場合は、[Gitで矛盾しない変更のみをマージできますか?]を参照してください(http://stackoverflow.com/questions/12572530/)。 git-merge-ignoring-conflicts) –

+0

もっと良い解決策があります。私のマージドライバを使用すると、何もする必要はありません:-)私の答えを見て:http://stackoverflow.com/a/26866992 –

答えて

12

ここに私がやってお勧めするものがあります。まず、通常のマージを行うが、それをコミットしない:

:あなたは最終的な結果をコミットすることができるはず

for file in $(find . -name 'pom.xml'); do git checkout HEAD "$file"; done 

git checkout master 
git merge --no-commit <branch> 

を、その後、POM、すべてのファイルを元に戻します

git commit 
+0

働いた素晴らしい。ありがとう!ロググラフは、チェリーピックよりもはるかに優れています。 untracked .origと.BACKUPファイルが残っていますが、それらを取り除くことは別の問題です。 –

+0

+1 ... nice findルーチン...非常に滑らかな;-) –

関連する問題