2016-12-11 24 views
1

ブランチ内のすべてのgitコミットをマスターブランチにマージすることはできますか?複数のブランチコミットをマスターにマージする

たとえば、ブランチ 'test'に複数のコミット(1,2,3)を追加するとします。それらはすべてtest.pyに関連していますが、競合はありません。 コミット1とコミット2をマージできますが、コミットできません3

GUIツールが好きです。

+2

'git merge'は1つをマージします[see footnote] * commit *。だからこの特定のケースでは、 'git merge'は第3のコミットではなく、第2のコミットです。しかし、あなたの質問の形式は、 'git merge'が何をしているのか誤解していることを示しています。 (これはなぜあなたがdownvoteになったのですか?私はdownvoteをやっていませんでした、私は誰がやったのか分かりません)。[脚注] Gitは "タコのマージ"と呼ばれるものを複数のコミットをマージしますが、あなたが思っているものから。 – torek

答えて

0

あなたの質問のようにコミットが順調である場合は、コメントに記載されているように、git merge <2>(ここで<2>はあなたの質問でコミット2と呼ばれるものを参照する方法です):SHA-1 。

git checkout master 
git cherry-pick <1> 
git cherry-pick <2> 
... #However many more you want to cherry pick 

注:最後から2番目の分岐testにコミットのハッシュまたはtest^より一般的に

、あなたはそうのようなtestにコミットする特定によって行われた変更を、選び出すためにgit cherry-pickを使用することができますこれは私です実際にはマージではありません。マスターブランチの上にコミットを再現します。しかし、これはどのようにしなければならないのですか:ブランチの一部をマージするのは意味がありません。代わりにマージする場合は、testmasterから分岐し、チェリーが必要なコミットを選択してから、そのブランチをマージして、コミット時に新しいブランチを作成できます。

関連する問題