Git 远程分支上的重基提交

Git 远程分支上的重基提交,git,rebase,Git,Rebase,我在github上分叉了一个项目,创建了一个新分支并进行了一些更改(提交B、C和D),因此我有以下树: ... <-- A (master) \ B <-- C <-- D (branch2) 然而,我意识到我想要维护一个反映上游变更的主分支,并创建了myproject master来完成这方面的工作。我把我的承诺转移到新的分支。重定基址后,我删除了,如果您是唯一在存储库上工作的人,则可

我在github上分叉了一个项目,创建了一个新分支并进行了一些更改(提交B、C和D),因此我有以下树:

... <-- A                     (master)
         \
          B <-- C <-- D       (branch2)

然而,我意识到我想要维护一个反映上游变更的主分支,并创建了myproject master来完成这方面的工作。我把我的承诺转移到新的分支。重定基址后,我删除了
,如果您是唯一在存储库上工作的人,则可以安全地将主分支“强制推送”到远程存储库,例如:

git checkout master
git push -f myrepo master
。。。但是,由于这是在重写主分支的历史,如果您有任何合作者已经在
A
之前拉过您的
master
,那么您必须更加小心

... <-- A                     (master)
         \
          B <-- CD            (myproject-master)
... <-- A <-- B <-- C <-- D   (master)
         \
          B <-- CD            (myproject-master)
git checkout master
git push -f myrepo master