私は他の誰かのレポのようなフォークを持っていて、私のマスターブランチにいくつかの変更をコミットし、私のフォークにプッシュしました:
[upstream/master] --- C1 --- C2[origin/master]
次に、自分の変更C1をC2ブランチの一部にすることを決定しfeature_branch1、masterブランチを に戻すことにしましたupstream/master。
[upstream/master === origin/master] --- C1 --- C2[origin/feature_branch1]
私はこれを達成しました:
git checkout C2
git branch -m feature_branch1
git checkout upstream/master
git branch -m master
(それが私が意図した方法であったかどうかはわかりません)。
master次に、次のようにブランチからいくつかの追加機能を追加しました。
C1 --- C2 [origin/feature_branch1]
/
[upstream/master === origin/master]
\
C1' --- C2' [origin/feature_branch2]
( git checkout master; git checkout -b feature_branch2; <changes>; <commits>)
今、私はリモートにプッシュしようとしています。プッシュfeature_branch1してfeature_branch2成功しましたgit push origin feature_branchXが ( )、マスターをプッシュしようとすると、早送りできず、履歴が失われるというエラーが表示されます。
私はこれを理解しています - 私はそれが私が失うことを望んでおらずC1、分岐点C2にmaster戻ることを望んでいないと思います. しかし、私は保存C1しC2てfeature_branch1すでに入っているので、それらを失うことはありません.
上記の図を実現する方法はありますか?