当我们改好一段代码时,准备将本地的master提交到远程库的master时,突然发现不能提交了,出现的错误代码如下:
![错误代码](https://img-blog.csdn.net/20160521141658330)
解决办法:
![解决方法](https://img-blog.csdn.net/20160521141625267)
现在我来简单分析一下我是在什么情况下遇到的这种错误:
我在修改完一段代码后,将他在本地库提交到master后,又提交到了远程库的master中,但是突然发现这个B版本的代码又有点问题,想退回到原来的A版本,但是原来的A版本已经在远程库里面了,所以我在本地先把本地的master恢复到了原来的A版本,`git reset --hard HEAD^`,然后将这个恢复的A版本提交,就遇到了文章开始的问题。出现这个问题的原因是:在git中每个版本是一个时间线,如果你在远程库也想恢复到原来的A版本,也就意味着时间恢复到原来A版本提交的时间,如果有位仁兄在你提交A版本和B版本之间提交了一个版本C,当你在远程库恢复成版本A的master时,那个仁兄的版本C也就没有了,所以git并不提倡你这样做,这样做事很危险的。
官网上解决这个问题的链接:
[官网](https://help.github.com/articles/dealing-with-non-fast-forward-errors/ "git官网上的解决办法")