2011-11-22 30 views
218

gitのmasterブランチからnewbranchという名前の新しいブランチを作成しました。今私はいくつかの仕事をしており、newbranchmasterにマージしようとしています。しかし、私はnewbranchに少し変更を加えました。newbranchを最後から4番目のコミットまでmasterにマージしたいと思います。特定のコミットまでマージ

私はcherry-pickを使用しますが、それは右のオプションを使用するためのメッセージを示しています

git checkout master  
git cherry-pick ^^^^HEAD newbranch 

は私の代わりにそれを行うにはgit mergeを使用することはできますか?

git merge newbranch <commitid> 

答えて

378

すべてを行う必要があるmaster支店にある、確かに:commit-idが最後、あなたのmasterブランチに取得したいnewbranchからコミットのハッシュです

git merge <commit-id> 

git help <command>を実行すると、任意のgitコマンドについて知ることができます。その場合はgit help mergeです。そして、ドキュメントはmergeコマンドの最後の引数が<commit>...であると言っているので、コミットまたは複数のコミットへの参照を渡すことができます。しかし、私は自分自身を決してしなかった。

+12

コミットだけでなく、コミットIDより前のすべてのコミット – Dau

+31

はい、履歴は 'master'から' commit-id'までの履歴が 'newbranch'からマージされてから'master 'ブランチ。 'git merge 'は、 'commit-id'で終わる名前のないブランチをあなたの現在のブランチにマージしていると考えることができます。 –

+0

コミットIDを使用して、master以外の2つのローカルブランチをマージできますか? – skt

2

分岐清潔を保つために、あなたがこれを行うことができます:

git checkout newbranch 
git branch newbranch2 
git reset --hard <commit Id> # the commit at which you want to merge 
git checkout master 
git merge newbranch 
git checkout newbranch2 

この方法は、それをマスタにマージされた場所newbranchが終了し、あなたはnewbranch2に作業を続けます。

関連する問題