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

git学习之旅(三)——合并冲突(conflict)

时间:2015-08-09 14:12:01      阅读:162      评论:0      收藏:0      [点我收藏+]

标签:git

「情况1」同一文件内容冲突

  • cd ~/user2/sample
  • git pull
  • echo "Hello,User2" >> user.txt
  • git add .
  • git commit -m "user2 conflict commit"
  • git push origin master


  • cd ~/user1/sample
  • echo "Hello,User1" >> user.txt
  • git pull

技术分享

由于发生了冲突不能合并新的版本,要先提交

  • git add .
  • git commit -m "user1 conflict commit"
  • git pull

技术分享

因为2个用户都想同一文件同一地发进行修改,即发生了冲突(conflict),使用文本编辑器可以看到有以下标志提示


技术分享

必须修正冲突的地方再提交,改为如下结果

技术分享

  • git add .
  • git commit -m "solve confict"
  • git log

技术分享

  • git push origin master


「扩展」图形用户界面

修改冲突建议使用图形界面工具
  • sudo apt-get install meld
  • git mergetool --tool=meld


「情况2」重命名文件

  • cd ~/user1/sample
  • mv user.txt user11.txt
  • git add .

技术分享

  • git status

技术分享

  • git add -A

修改文件名相当于删除旧的文件,新建一个文件,涉及删除文件根据以上提示使用git rm <file>,也可以使用git add -A包括新增(new file),修改(modify),删除(deleted)都全部提交,至于git add . 不包括删除。

  • git status

技术分享

  • git commit -m "user1 renamed"
  • git push origin master


  • cd ~/user2/sample
  • mv user.txt user22.txt
  • git add -A
  • git commit -m "user2 renamed"
  • git pull

技术分享ll

  • ls -l

技术分享

  • git status

技术分享

发现同时存在2个文件,要将冲突修正

  • rm user22.txt
  • mv user11.txt user.txt
  • git add -A
  • git commit -m "solve filename conflict"
在代码是共用的或者是接口,修改文件名或重命名变量会涉及其他模块的代码修改,之后很容易发生冲突或者是逻辑错误。所有尽量避免。如果要改最好是让其他人都将修改提交到服务器且工作区不再编译,再使用软件工具进行重构。

版权声明:本文为博主原创文章,未经博主允许不得转载。

git学习之旅(三)——合并冲突(conflict)

标签:git

原文地址:http://blog.csdn.net/qazqwdxz/article/details/47374505

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