首页 > 解决方案 > 我做了 git pull --rebase 现在我的分支中有其他人的提交 - 为什么

问题描述

我做到了git pull --rebase,现在我的分支中有其他人的提交 - 为什么?

发生了什么:

消息 1:

Your branch and 'origin/Ang-1075' have diverged,
and have 33 and 1 different commits each, respectively.
  (use "git pull" to merge the remote branch into yours)

nothing to commit, working tree clean

我做了什么

git pull -- rebase

消息 2

  (use "git push" to publish your local commits)

nothing to commit, working tree clean

我做了什么 :

git push

现在我有 66 个文件更改和许多不属于我的提交。我的分支上只有 2 次提交...

有没有办法恢复这个?

标签: gitgithub

解决方案


您的本地副本与Ang-1075同一分支的远程版本不同,origin/Ang-1075.

1-2-3 <- local Ang-1075
 \
  2b-3b-4-5-6-...-33-34-...-66 <- origin/Ang-1075

在服务器允许您将分支推送回远程之前,您需要将此分支的本地版本和远程版本合并在一起。在 git 合并之后,它可能看起来像这样:

1-2-3--------------67 <- merge commit of origin/Ang-1075 into Ang-1075
 \                /
  2b-3b-........66

只要您获取并合并(即 git pull)然后在其他人推送新的提交之前推送,推送应该可以通过。我使用普通合并而不是变基,但如果其他人在该分支中处于活动状态,我也会为我的更改创建一个新的分支名称。

发生这种情况是因为当您提交本地副本时,其他人将新提交推送到远程的同一分支。


推荐阅读