私はgitのnewbranch
ブランチからmaster
という名前の新しいブランチを作成しました。今私はいくつかの仕事をしましたそしてnewbranch
をmaster
にマージしたいです。ただし、newbranch
に追加の変更を加え、newbranch
を最後から4番目のコミットまでmaster
にマージしたいと思います。
cherry-pick
を使用しましたが、正しいオプションを使用するためのメッセージが表示されます。
git checkout master
git cherry-pick ^^^^HEAD newbranch
代わりにgit merge
を使用できますか?
git merge newbranch <commitid>
master
ブランチに入っているだけで、必要なことは次のとおりです。
git merge <commit-id>
ここでcommit-id
は、newbranch
ブランチで取得したいmaster
からの最後のコミットのハッシュです。
git help <command>
を実行すると、あらゆるgitコマンドの詳細を知ることができます。その場合それはgit help merge
です。そしてドキュメントはmerge
コマンドの最後の引数は<commit>...
であると言っています、それであなたはどんなコミットあるいは複数のコミットへの参照も渡すことができます。しかし、私は後者を自分でやったことはありません。
分岐をきれいに保つために、これを行うことができます。
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はそれがmasterにマージされたところで終了し、あなたはnewbranch2に取り組み続けます。
以下のコマンドを現在のブランチフォルダーで実行して、この<commit-id>
から現在のブランチにマージします。--no-commit
は自動的に新しいコミットを行いません
git merge --no-commit <commit-id>
git merge --continue
は、マージによって競合が発生した後にのみ実行できます。
git merge --abort
現在の競合解決プロセスを中止し、マージ前の状態の再構築を試みます。