码迷,mamicode.com
首页 > 其他好文 > 详细

git pull——git库版本与本地库版本冲突总结

时间:2014-12-24 16:28:56      阅读:271      评论:0      收藏:0      [点我收藏+]

标签:git   git pull   合并冲突   

git库版本与本地库版本冲突:个人定义为就是git库版本与本地库版本不匹配,详细地说就是我们从git库clone克隆下来的版本,经过修改后提交并合并成新版本,但是后来又将git库的该版本撤销了,而本地没有撤销该版本,此时就是本地库拥有此版本而git库中没有此版本。这样在使用git pull或git pull origin master可能会出现:“Your local changes to the following files would be overwritten by merge”或"PULL  不可用,因为您尚有未合并的文件“或"自动合并失败,修正冲突后提交修正后的结果"

“Your local changes to the following files would be overwritten by merge”这样的错误,意思就是你的本地修改以下文件将被覆盖合并。

情况一

如果只会提示:“Your local changes to the following files would be overwritten by merge”这样的错误,这样的错误是因为本地库中有修改,但是没有提交到git库中,而现在使用git pull或git pull origin master来更新代码就会提示本地修改的文件会被覆盖合并,虽说会覆盖合并,其实根本就没有合并。以前为了同步git库对应的版本,而使用git checkout -f来撤销自己的修改,这样实在是太愚蠢的做法。原来我们是可以使用git stash暂时搁置当前已做的修改,倒退到改动之前的状态来进行其他的必要操作(比如发布,或者解决一个bug,或者branch,等等)。此时就可以使用git pull或git pull origin master来更新代码,然后使用git stash pop撤销最后的一个搁置(可能有多次搁置,查看搁置使用git stash list)。

情况二

如果通过情况一的解决办法还是不行,如果遇到"PULL  不可用,因为您尚有未合并的文件“或"自动合并失败,修正冲突后提交修正后的结果"。如:

技术分享

技术分享

此时就有可能是本地库中拥有git库中没有的版本,到查看git库的版本状态以及本地使用git log查看本地的版本状态,本地查看结果如下:

技术分享

解决办法就是我们本地也要将"触摸屏跳点问题"这个版本撤销,当然也可以撤销到比它更前的版本。如:

使用git reset --hard 03a280c275bbd48c61417948173cbabf5bc71a69回退到"LCD  PWM背光调节"这个版本。其中03a280c275bbd48c61417948173cbabf5bc71a69为对应版本commit后面的字符串

技术分享

最后使用git pull origin master成功更新了代码。


git branch:查看分支

git checkout master 切换到分支‘master’



git pull——git库版本与本地库版本冲突总结

标签:git   git pull   合并冲突   

原文地址:http://blog.csdn.net/thanksgining/article/details/42121751

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!