Git:如何覆盖其他回购时间线?

时间:2017-04-08 20:04:19

标签: git github

我最近尝试在github上发送PR,但我很快注意到我的PR包含较旧的提交:

这里的问题是我只进行了最后一次提交,因为提到的第一个提交被合并到另一个PR中,第二个是我更新自己的分支。

我询问我如何阻止它,大多数人告诉我使用git rebase alexflipnote/master。很公平,我试过了,它做得很好。

但是,当我尝试将其推送到我的分支时,它表示无法推送,因为提交历史记录存在冲突。

简化问题:

Now:
A-B-C - - - G
     \     /
      D-E-F

What it should become:
A-B-C-G
      |
      G

无论我尝试什么,我似乎无法使github显示This branch is even with AlexFlipnote:master。即使在我的PR合并之后,它也会以某种方式显示This branch is 3 commits ahead, 1 commit behind AlexFlipnote:master。我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

由于remote历史记录和local历史记录现已发生分歧,因此您无法在变基后推送到GitHub。

您需要做的只是使用pull开关进行--rebase上游更改:

git pull --rebase upstream master

现在,如果你检查你的分支机构,你会发现它一切顺利。

git status

然后使用--force开关

推送到GitHub
git push origin master --force