私はGitを長い間使っていますが、今日はブランチからブランチへの変更をいくつかマージして問題に遭遇しました。私が持っているこの状況は - 私は4つの枝を持っています:2つの主要なものと2つの特徴のもの。このように呼び出されると仮定しましょう:main_branch1
、main_branch2
、feature_branch1
、feature_branch2
フィーチャーブランチは常にmain_branch1
から作成され、作業が終了すると、フィーチャブランチにマージされます。そしてある時点で、その変更はmain_branch2
に併合されます。 2つのメインブランチの間にマージはありません! ここで問題が発生します。今の私の場合、feature_branch1
はmain_branch1
から作成され、内部でいくつかの変更が加えられ、メインブランチに戻されます。その後feature_branch2
をもう一度main_branch1
から作成し、そこにも変更が加えられ、それを元に戻しました。今度はfeature_branch2
をmain_branch2
にマージしたいのですが、私が作成したときに変更したのはfeature_branch1
ですから私はgit rebase
でやってみたが、物事が進むことができず、私の働く木は完全な混乱のように見えた。Git - 機能ブランチをマージする方法はありますが、コミットをいくつか除外しますか?
は私が達成したいもののグラフであり、どのように私のツリーは次のようになります。私はfeature_branch2
を作成したときに見ることができるように
o---------------o---------------------o main_branch1
\ /\ /
o-----------o \ /
feature_branch1 \ /
\ /
o-----------o
feature_branch2 \
\
o-----------o main_branch2
、私はすでにmain_branch1
にマージされたfeature_branch1
からの変更を、得ました。 feature_branch2
をmain_branch2
にマージすると、私はそれらを除外することができますか?しかし、私が後でfeature_branch1
をmain_branch2
にマージするときに追加する必要があります...
どうすればいいのでしょうか?ありがとう! :)
ええ、私は '--onto'パラメータを調べましたが、実際にどのように役立つのか分かりません。実際には、ブランチからのマージコミットが、feature_branch1にあります。今度は 'feature_branch2'だけを' main_branch2'にマージしたいのですが、 'feature_branch1'からのこのマージコミットはありません。上のグラフは実際にそれを示しています。 – yep4u