Chinaunix首页 | 论坛 | 博客
  • 博客访问: 136239
  • 博文数量: 16
  • 博客积分: 225
  • 博客等级: 民兵
  • 技术积分: 185
  • 用 户 组: 普通用户
  • 注册时间: 2010-11-28 22:07
个人简介

人是懒惰的,只要有借口就会不想往前。如果既有明确的目标,同时道路又直直指向目标,一览无余,只等你开始往前走,那么便没有借口,一往无前。

文章分类
文章存档

2014年(2)

2013年(9)

2012年(5)

分类: LINUX

2014-02-13 12:55:47

本文转载自http://blog.csdn.net/matrix_laboratory/article/details/18034509

1. 问题描述:

       王修改了文件A并且push到了git server上,这时李也在修改文件A,但修改没有完成,李希望获得最新的代码,
如果李直接pull的话会遇到一下问题:

error: Your local changes to the following files would be overwritten by merge:

***************************************

Please, commit your changes or stash them before you can merge.


造成冲突的原因:

      很多命令都可能出现冲突,但从根本上来讲,都是merge 和 patch(应用补丁)时产生冲突。
而rebase就是重新设置基准,然后应用补丁的过程,所以也会冲突。
git pull会自动merge,repo sync会自动rebase,所以git pull和repo sync也会产生冲突。当然git rebase就更不用说了。


2. 问题解决

2.1 commit your change

先提交你的改动,在更新代码


2.2 stash

git stash

git pull

git stash pop

git stash的作用是把本地的改动保存起来,、

然后在git pull 这样就不会有冲突的问题

最后git stash pop 就是把之前的改动merge到代码中。

2.3 merge

使用git merge --abort中止merge。merge manual中说,这条命令会尽力恢复到Merge之前的状态(可能失败!)。

merge manual中有一条警告:

Warning: Running git merge with uncommitted changes is discouraged: while possible, it leaves you in a state that is hard to back out of in the case of a conflict.


3. 参考文献

[1] http://www.cnblogs.com/sinojelly/archive/2011/08/07/2130172.html

[2] http://blog.csdn.net/iefreer/article/details/7679631

阅读(4842) | 评论(0) | 转发(0) |
0

上一篇:代码阅读工具:Source Navigator和Source Insight

下一篇:没有了

给主人留下些什么吧!~~