所以,我有这种情况;
Local&远程存储库有这个图:
A <-- B <-- C <-- E (master)
所以,大师是这样的:
git pull
我在主人身上做git checkout feature
git rebase master
。
其次是:
git status
然后On branch feature
Your branch and 'origin/payment-app' have diverged,
and have 4 and 3 different commits each, respectively.
(use "git pull" to merge the remote branch into yours)
nothing to commit, working directory clean
就是这样:
git pull
注意:上面的错误是我从真实场景中得到的原始错误。
所以,我现在的问题是;
谢谢!
答案 0 :(得分:1)
如果Git服务器要求他们执行除快进合并之外的任何操作以进行更改,则Git服务器将不接受推送。有两个选项,最适合您主要取决于您的工作流程:rebase和merge
Rebase将接受您当前的提交并将其重新播放到新的基础上作为一系列新提交,(见下文)原始提交将变为悬空并在大约90天内被垃圾收集(如果您正在使用标准配置选项)
git checkout feature
git rebase origin/feature
使用此方法,每个提交可能会引入需要解决的冲突,但通常这不是问题。如果发生这种情况,请解决冲突,将它们添加到并使用continue命令,有关详细信息,请参阅this article。
如果你的工作流允许,如果你有冲突,合并会更容易处理,但它会使历史变得不那么干净(在rebase和merge人群之间几乎存在神圣的战争,所以这里没有意见) 。
git checkout feature
git merge origin/feature
这将创建一个包含两个父项的新提交,即您的版本及其分支版本。
使用任一方法,您都可以将更改推送到github,因为它可以在到达时执行ff合并。