说来可笑,一个人开发,git pull还会被rejected。记录下解决过程。
事情是这样的,主分支master稳定,要开发新功能,于是新建branch1。开发到差不多了,还在测试,但是master上有个小小bug需要改,于是新建新建分支,改bug,测试,差不了合并。这个时候branch1单独测试,想要一起修复这个bug,于是pull master,于是就被reject了。
https://blog.csdn.net/weixin_41287260/article/details/89742151,这篇博客对non-fast-forward解释挺有启发。从他这里了解到,master先分出branch1,然后master在修复bug之后push又向前走了,branch1在若干次push之后也向前走了。这两条路没有捷径合到一块,于是把master pull过来的时候就被拒绝了。
为了解决这个问题,可以把branch1合到master,这样,两条路有交点了,才有捷径可以把代码合并。但是branch1还没测完,不想影响master稳定性。于是,需要在两条路上接上一条路,使这两个分叉有一个交点。所以,新建一个分支master_copy,该分支从master上复制,然后把branch1合到master_copy上,这样master_copy既包含了bug修复代码,又有了branch1的功能。本地pull master_copy就不会被reject了,本地再push到branch1,则branch1就有了bug修复代码。
纯属愚见,大侠勿喷。
本文记录了一位开发者在使用 Git 进行分支管理时遇到的 pull 被 rejected 的情况。当 master 分支修复了一个 bug 并前进后,未完成的 branch1 想要合并 bug 修复时遇到了问题。解决方案是创建新的 master_copy 分支,将 branch1 合并到 master_copy,使得两者有共同的基点,避免 non-fast-forward 错误。这种方法确保了 master 稳定性,同时也解决了开发中的问题。
5537

被折叠的 条评论
为什么被折叠?



