再合并代码时报如下错误,(我的操作是把本地代码回滚到某次的提交,此时与远程代码不一致,我改动本地代码,想要提交的时候报如下错误)Your branch and 'origin/feature_zf_tencent2' have diverged, and have 1 and 23 different commits each, respectively. ? (use "git pull" to merge the remote branch into yours)
解决方案
git?pull?--rebase?origin?****? ? ? ?(****为分支名)
假设,远程上的 commit 是?A -> B 你在 A 电脑上 commit 和 push 之后,远程变成了?A -> B -> C -> D 现在,B 电脑上还是?A -> B 。然后你 commit 了,那么 B 电脑上就是?A -> B -> E 。
所以,你需要的是把 B 电脑上的历史线变成?A -> B -> C -> D -> E 这时,你需要在 B 电脑上:
git?pull?--rebase?origin?dev
这个命令等同于:
git?fetch?origingit?rebase?origin/dev
执行之后,B 电脑上的历史线就会变成?A -> B -> C -> D -> E ,然后你就可以?push ?了
多说一句,之所以显示上面的“错误”,是因为?A -> B -> C -> D ?和?A -> B -> E ?有一个共同的祖先?B ,你在本地多了一个 commit?E ,远程多了两个 commits?C ?和?D 。这个时候如果你要在?A -> B -> E ?的 branch 上?push ,git 猜不出到底想保留?C ?和?D ,还是只要?E ,还是都要,就会出现上面的提示。
|