我一直在自己的分支机构工作,但后来我收到了其他人的拉取请求,我必须将其合并到master
。
将他们的拉取请求合并到master
后,我无法将自己的dev
分支合并到master
!所以我所做的是:
git fetch && git rebase origin/master && git pull && git push
然后我的分支git log
看起来像这样:
我做错了什么?我该如何避免这个问题?如何解决我在git log
中创建的混乱局面?我的整个git log
看起来很糟糕......
答案 0 :(得分:4)
这取决于你的目标。你有两个选择:
如果你想重新分支你的分支 - 这是用origin/master
开头的新分支替换那个分支上的现有提交,那么你不需要你的git pull
命令。然后git push -f
,或者可能从该点创建一个新分支,只需git push
。这将导致:(按顺序)
如果要保留提交并向master添加合并点,可以使用git checkout your_branch ; git fetch ; git merge origin/master
替换这些命令。当您尝试将分支合并到主分支时,您将遇到相同的冲突。但另一方面,他们在重新定位时必须解决相同的冲突。这将导致:(按顺序)
至于如何修复它,你可以在git reflog
中找到你的旧分支。在你的rebase之前查找提交并从中创建一个分支。您可以选择以这种方式启动新分支,也可以将旧分支重置为该提交。