赞
踩
git 错误提示:
hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. Integrate the remote changes (e.g.
hint: ‘git pull …’) before pushing again.
hint: See the ‘Note about fast-forwards’ in ‘git push --help’ for details.
这个错误是怎么出现的?
我在本地master上提交了四次,分别是1,2,3,4,每次都推送到远程服务器,后来回退到第2次提交,然后又提交了两次,它们是5和6,这个时候再推送到远程服务器就报这个错误了。分支图就是下面这样:
如果用git push -f强制推送,会丢失掉第3和第4次提交,有没有方法可以保留第3和第4次提交呢?
这个问题,在网上也看了一些贴子,都没有解决我的问题。先记录一下,找到解决办法再更新。
解决方法:
上图中,蓝色的master,提交为6的那个地方是我们当前本地最新的提交位置,红色origin/master代表的是远程最新的提交位置。
我们在红色的origin/master上右键单击,在出现的菜单中选择“Merge into current branch…”
出现弹窗,默认勾选,选择“Yes,merge”
分支图就会变成下面这样
这样再push就不会报错了。并且可以保留第3、第4次提交的信息。再次从远程克隆下来也是没有问题的。
===================================================================================
一般人看到这里就可以了
===================================================================================
过程中的一些记录:
上面的操作中,在勾选,选择“Yes,merge”这一步后,文件夹里面的内容改变为
多了3和4两个文件,并且它们是没有打绿色对勾的,这是不是它们没有被git管理呢?
用git status命令查看一下文件状态
发现并没有新文件,出现这种情况是windows刷新不及时导致的,我们在文件夹里刷新一下,就可以了。
另外,新出现的3.txt和4.txt文件可能并不是工程必须要的,因为第6次提交的时候是没有3.txt和4.txt文件的。我们可以直接删除掉3.txt和4.txt文件就行,这个时候就到了平常git管理的状态了,删除掉3.txt和4.txt文件后,再次恢复也是可以的。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。