0

SOおよびその他のドキュメントでこれを調査しました。リベース、マージ、チェリーピッキング、デタッチヘッドを試しました。

これを文字通り6時間試みた後、質問をする時が来ました!

これが私が始めていることです:

A-B-C-D-E-F-G master

変更したいのは次のとおりです。

A-B      F-G  master
   \    / 
    C-D-E dev

私が来た最も近いものは次のとおりです。

A-B      C-D-E-F-G-H Main
   \    / 
    C-D-E dev
        \
         F-G master

ブランチを機能させるには、別のブランチ名とダミーのコミットを追加する必要がありました。

しかし、これは変化がないよりも悪いことです。

助けてください!

返信後に更新

返信ありがとうございます。

はい、私の「欲しいもの」はあまり明確ではありませんでした。うまくいけば、これはそれを明確にします:

A-B   -  F-G  master
   \    / 
    C-D-E dev

つまり、F の「マスター」は、B とブランチ「dev」がマージされた結果です。

まだ動作していません

回答を試みてくれた@frasertweedaleに感謝します。

私はあなたの指示に注意深く従いましたが、最終的には次のようになりました。

A-B   -  "merge branch 'dev'"-G  master
   \    / 
    C-D-E dev
        \ 
         F-G-"merge branch 'dev'"-F-G

これが難しいことを嬉しく思います。これに 7 時間を費やした今、私はそれほど悪くはありません!

最終結果 @frasertweedale が言ったように、これはぶら下がっているコミットを除いて、まさに私が望んでいたものです。

したがって、ぶら下がりを取り除く必要があります。

わかりやすくするために、以下に再描画しました。

A-B   -  "merge branch 'dev'"-G2  master
   \    / 
    C-D-E dev
        \ 
         F1-G1-"merge branch 'dev'"-F2-G2

そして、このコマンドはクリーンアップを行います:

git rebase -p --onto F1^ F1

結果:

A-B   -  "merge branch 'dev'"-G2  master
   \    / 
    C-D-E dev

「merge branch 'dev'」には元の F コミットが含まれており、もちろん、そのように再コメントすることができます。

4

1 に答える 1