落入一个奇怪的git rebase / pull循环

时间:2015-07-13 20:01:31

标签: git github

我试图用git来修改一个功能分支。

我用:

切换到主分支
git checkout master

获得最新版本:

git pull

切换回来:

git checkout iss248

重订:

git rebase master

然后由于某种原因git无法自动修复冲突,即使它看起来没有任何冲突:我基本上经历了我逐行制作的所有变化批准他们。所以我认为我已经完成了,但是

git status

说的话:

On branch iss248
Your branch and 'origin/iss248' have diverged,
and have 11 and 7 different commits each, respectively.
  (use "git pull" to merge the remote branch into yours)

All conflicts fixed but you are still merging.
  (use "git commit" to conclude merge)

Changes to be committed:

    modified:   chalktalk/apps/exams/forms.py
    modified:   chalktalk/apps/lessons/forms.py

在这些文件中有如下奇怪的嵌套冲突:

<<<<<<< HEAD
<<<<<<< HEAD
<<<<<<< HEAD
=======
        widget=MyFilteredSelectMultiple('lessons'),
>>>>>>> MyFilteredSelect now takes a content_name parameter
=======
        widget=MyFilteredSelectMultiple('lessons'),
>>>>>>> MyFilteredSelect now takes a content_name parameter
=======
        widget=MyFilteredSelectMultiple('lessons'),
>>>>>>> 18bc77f3387fc6ee6cdf7203a92136c8837b0e73

我做了一件非常明显错误的事吗?

git rebase master

我是否需要以某种方式跟进,以确保我的本地更改反映在我的github分支上?为什么rebase不知道如何解决冲突&#39;基本上只插入了一行?

谢谢!

1 个答案:

答案 0 :(得分:2)

在rebase期间解决合并冲突通常包括三个阶段:

  1. 编辑冲突的文件以选择适当的部分以包含和删除包含冲突标记的无关位
  2. git add已修改的文件,以将其标记为不再存在冲突
  3. git rebase --continue创建提交并继续进行任何进一步的提交以进行重新设置
  4. 似乎在过去的至少一个点上,你忽略了做2或3(或两者)。