我有一个本地分支(CRM-ayrshireminis
),其中包含了几个提交,这些提交已经被推送到了远程分支(origin/CRM-ayrshireminis
)。这个分支是从一个星期前的develop
分支创建的,在这之后,其他协作者在这个分支上工作了一个星期。
我的目标是将origin/develop
分支最新代码合并到我的特性分支CRM-ayrshireminis
中。
我所做的是:
git checkout develop
git pull
git rebase -i develop CRM-ayrshireminis
我有两个提交记录,所以我将它们压缩成一个,然后退出。我收到了消息,显示 Rebasing (2/2)
,所以看起来没问题...
[crmpicco@dev53 ayrshireminis]$ git status
# On branch CRM-ayrshireminis
# Your branch and 'origin/CRM-ayrshireminis' have diverged,
# and have 2 and 2 different commits each, respectively.
# (use "git pull" to merge the remote branch into yours)
我是否有办法将develop分支的提交rebase到我的分支,并将我的两个提交压缩成一个提交呢?
git rebase -i origin/develop
是正确的吗?我在研究的时候没有看到过引用origin分支的情况。如果我在develop上拉取了一个请求,然后执行git rebase -i develop
,这样做基本上是一样的吗? - crmpiccoorigin/develop
上进行变基意味着您不必担心首先检出develop
并执行git pull
。如果您已经在自己的分支上,只需运行git fetch; git rebase origin/develop
即可完成 - 完全无需分支切换。 - user229044Your branch and origin/CRM-ayrshireminis have diverged
。正如你所说,我已经在我的功能分支上,并执行了git fetch
和git rebase -i origin/develop
,但是它仍然让我面临同样的问题。我不明白为什么会发生这种情况。有任何想法吗? - crmpiccogit push -f
命令来覆盖远程分支的状态以匹配你自己的分支。如果你不想让你的历史记录分叉,就不能使用变基。 - user229044