Git rebase工作流程问题

时间:2014-08-04 16:34:46

标签: git git-rebase merge-conflict-resolution

有很多关于git rebase工作流的帖子/问题/博客。以下是我理解和执行的内容:

将本地主服务器重新定位到上游

git fetch upstream
git rebase upstream/master
git reset --hard upstream/master

将fork master重新定位到上游

git push origin +master

到目前为止一直很好.. 现在:尝试将本地分支重新定位到本地主分支

git checkout strlen
git rebase -i HEAD~50  
# In the interactive I do a bunch of fixups and move the latest branch commit to the top

一些合并冲突:让我们尝试解决它们 git status

# Unmerged paths:
#   (use "git reset HEAD <file>..." to unstage)
#   (use "git add/rm <file>..." as appropriate to mark resolution)
#
#   both modified:      sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/SqlParser.scala
#   both modified:      sql/core/src/test/scala/org/apache/spark/sql/SQLQuerySuite.scala
#   both modified:      sql/hive/src/main/scala/org/apache/spark/sql/hive/HiveQl.scala

让我们进行手动合并,然后添加它们:

meld sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/SqlParser.scala
meld sql/core/src/test/scala/org/apache/spark/sql/SQLQuerySuite.scala
meld  sql/hive/src/main/scala/org/apache/spark/sql/hive/HiveQl.scala
git add -a
git rebase -i --continue

现在这里是我感到困惑的地方:rebase现在仍然抱怨同样需要合并的三个文件。但现在它显示合并冲突是由于早期在同一分支(strlen)上提交。但为什么? rebase应该只有一个合并冲突 - 顶部 - 每个文件。为什么相同的文件会发生多个合并冲突?

1 个答案:

答案 0 :(得分:0)

我已将工作流程稍微修改为以下内容:

git pull --rebase origin mybranch

git rebase - 继续

git push -f origin mybranch