私は他の誰かのレポのようなフォークを持っていて、私のマスターブランチにいくつかの変更をコミットし、私のフォークにプッシュしました:
[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
すでに入っているので、それらを失うことはありません.
上記の図を実現する方法はありますか?