Git使用之——冲突解决一(git merge conflict)
来源:互联网 发布:淘宝零信誉店铺转让 编辑:程序博客网 时间:2024/06/05 23:58
Git冲突是在多用户协同工作下出现,在一些情况下git可以智能自动合并,但有时需要用户手动合并。
(本文链接:http://blog.csdn.net/u012150179/article/details/14047183)
一. Git智能自动合并
1. 多成员修改不同文件
这和之前所述的“非快进式推送”一致,按照其方式解决(http://blog.csdn.net/u012150179/article/details/36044515)。2. 多成员修改相同文件不同区域
3. 同时修改文件名和文件内容
解决:
上述三种方式都可以用同一中方式解决,也就是在执行push之前先进行pull操作,即- git pull
这里
- git pull = git fetch + git merge refs/remotes/origin/master
二. 用户手动合并
1. 文件合并(修改同一文件的同一区域)
现在模拟这种情况的发生。(注:我这里是首先搭建了一个Git 服务器,搭建方法可见http://blog.csdn.net/u012150179/article/details/17029731)这里新建了从share版本库clone内容的两个用户user1和user2。并同时修改文件conflict_test文件的第二行,在user1执行push后,user2执行push会发生如下情形:图1
在log信息中提示使用git pull,那尝试git pull,出现一下结果:
图2
得到的信息是:“自动merge失败,需要修复conflict后才能commit。”也就是此时已经出现了在上面“Git智能自动合并”的情形之外的情况,现在Git已经不能执行自动合并,此时需要用户手动合并解决问题。
可以查看版本库状态:
图3
问题解决方法:
这里比较好的方式是借助mergetool,输入git mergetool
得到
图4,回车
出现kdiff3图形界面,其中A区为修改前,B区为本地(local)版本库修改,C区为远程版本库(remote)信息,在最下方点击右键选择需要使用的版本库,修改后保存退出即可。
这里就完成了conflict的手动合并。
之后:
git commit –m “”
git push origin master
即可。查看提交日志:
图5
可以发现最新提交是前两次提交的合并。
2. 树合并(不同成员对同一文件重命名)
关于树冲突,出现的原因是因为同时对一个文件进行了重命名。也可以使用mergetool修复冲突,但是更直接的方法是直接使用git rm删除想删除的文件,使用git add将需要的文件加到暂存区进而commit。在文件合并和树合并中还有一个很有用的命令是:
git ls-files –s
可查看暂存区文件。
其它具有参考性文章:
http://yodalee.blogspot.com/2013/03/vimdiffgit-merge-conflict_28.html
http://www.cnblogs.com/sinojelly/archive/2011/08/07/2130172.html
阅读全文
0 0
- Git使用之——冲突解决一(git merge conflict)
- Git使用之——冲突解决一(git merge conflict)
- git基础学习之——解决merge冲突
- 【转】解决 Git 的 Merge Conflict
- git学习之旅(三)——合并冲突(conflict)
- git 解决主库冲突conflict
- 解決git merge conflict
- git merge conflict 参考
- git解决冲突与merge
- 168 git merge冲突解决
- git Merge 冲突解决---流程
- Eclipse+git中merge代码时出现conflict(冲突)的问题解决方案
- git---分支合并冲突处理(conflict)
- 高效使用vimdiff解决git merge冲突(英文版)
- 高效使用vimdiff解决git merge冲突(英文版)
- 高效使用vimdiff解决git merge冲突(英文版)
- Git技巧之解决git merge的合并冲突(非树冲突)
- git之解决冲突
- 事件监听器的几种配置方法
- 【linux环境配置】设置linux通过主机名访问局域网主机
- html中hidden的作用
- 理解 GLib 的单元测试框架
- Android 控制摄像头拍照
- Git使用之——冲突解决一(git merge conflict)
- java_集合体系之List体系总结、应用场景
- Kotlin基础语法详解
- 事件绑定、事件监听、事件委托
- spark完全分布式安装
- 矩阵连乘(java)
- android 加载assets下图片,手势放大缩小
- 微信小程序与公众号卡券/会员打通
- 4833: [Lydsy2017年4月月赛]最小公倍佩尔数 数论变换