在更新master时处理pull请求

时间:2017-06-21 07:58:19

标签: git

我一直在自己的分支机构工作,但后来我收到了其他人的拉取请求,我必须将其合并到master

将他们的拉取请求合并到master后,我无法将自己的dev分支合并到master!所以我所做的是:

git fetch && git rebase origin/master && git pull && git push

然后我的分支git log看起来像这样:

  1. 我的分支提交。
  2. 其他贡献者的提交。
  3. 我的分支提交(从第1点开始),他们重复自己。
  4. 我做错了什么?我该如何避免这个问题?如何解决我在git log中创建的混乱局面?我的整个git log看起来很糟糕......

1 个答案:

答案 0 :(得分:4)

这取决于你的目标。你有两个选择:

  1. 如果你想重新分支你的分支 - 这是用origin/master开头的新分支替换那个分支上的现有提交,那么你不需要你的git pull命令。然后git push -f,或者可能从该点创建一个新分支,只需git push。这将导致:(按顺序)

    • 旧主历史
    • 新主更改
    • 您的分支提交
  2. 如果要保留提交并向master添加合并点,可以使用git checkout your_branch ; git fetch ; git merge origin/master替换这些命令。当您尝试将分支合并到主分支时,您将遇到相同的冲突。但另一方面,他们在重新定位时必须解决相同的冲突。这将导致:(按顺序)

    • 旧主历史
    • 您的分支提交
    • 合并新的主更改
  3. 至于如何修复它,你可以在git reflog中找到你的旧分支。在你的rebase之前查找提交并从中创建一个分支。您可以选择以这种方式启动新分支,也可以将旧分支重置为该提交。