我有一个其他人的 repo 的分支,并且像这样对我的 master 分支进行了一些更改,并推送到我的分支:
[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
,但是当我尝试推送 master 时,我收到一个关于无法快进并丢失历史记录的错误。feature_branch2
git push origin feature_branchX
我有点明白这一点 - 我认为它不希望我输掉并C1
回到分支点。但是我已经保存了,所以我不会失去它们。C2
master
C1
C2
feature_branch1
有什么办法可以实现上图?