有很多关于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应该只有一个合并冲突 - 顶部 - 每个文件。为什么相同的文件会发生多个合并冲突?
答案 0 :(得分:0)
我已将工作流程稍微修改为以下内容:
git pull --rebase origin mybranch
git rebase - 继续
git push -f origin mybranch