我遇到了一个问题,让我很困惑。我的分支中有一些代码与主分支(在我这个案例中是develop)冲突。这不是什么大问题,因为只有7行代码很容易识别。
BitBucket友好地告诉我,为了解决合并冲突,我需要执行以下步骤:
- git checkout
我读到了其他类似问题的评论,发现有人使用-f标志(强制)推送代码。我尝试了一下,当然可以工作,但我的7行更改变成了多个文件更改。合并冲突已经消失,但我担心在主分支(develop)中添加不必要的提交。
BitBucket友好地告诉我,为了解决合并冲突,我需要执行以下步骤:
- git checkout
<branch in question>
- git pull <master>
(在我这个案例中是develop)
- 解决冲突
- 此时命令行还提供了以下指导:
- "手动解决所有冲突,并使用"git add/rm <conflicted_files>
"将其标记为已解决,然后运行"git rebase --continue"。"
- 运行"git rebase --continue"后,会出现一个新文档,可以更改原始提交消息。我只需关闭它,合并就会继续进行。
- git commit
- git的结果是"Successfully rebased and updated <current branch>
"
- git push origin HEAD
- 我期望收到一条成功的消息,说明一切都正常工作,但我一直收到这条消息:
- On branch <current branch>
- Your branch and '<current branch>
' have diverged, and have 4 and 3 different commits each, respectively.
- (use "git pull" to merge the remote branch into yours)
- 没问题,让我们运行git pull...然后我们不得不重新开始,就好像我从未解决过合并冲突一样。我读到了其他类似问题的评论,发现有人使用-f标志(强制)推送代码。我尝试了一下,当然可以工作,但我的7行更改变成了多个文件更改。合并冲突已经消失,但我担心在主分支(develop)中添加不必要的提交。
git commit
是什么意思呢?在 rebase 过程中并不会使用它,除非你在做一些非常规的操作。 - eftshift0pull.rebase
配置为true
,以便所有的pull都运行git rebase
,即使那些本应该运行git merge
的也是如此... - torekreword
,它就会被用到,但这并不是这种情况。所以,鉴于这是出乎意料的……这就是我问的原因。 - eftshift0