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

Git分支(5/5) -- 解决合并的冲突

时间:2018-03-22 14:10:09      阅读:175      评论:0      收藏:0      [点我收藏+]

标签:出现   删除   可视化工具   分享   追踪   合并   分享图片   img   切换   

技术分享图片

如果两个分支上都对同一个文件进行了修改, 那么就有可能发生冲突.

 

首先创建一个分支, 并切换到该分支上:

技术分享图片

然后修改index.html, 修改几个地方吧.

然后查看状态, 并commit:

技术分享图片

然后切换到master, 并编辑同一个文件:

技术分享图片

而这时index.html并不是realwork分支修改后的样子, 而是修改之前的样子:

技术分享图片

然后修改index.html, 修改几处可能引起冲突的地方.

commit:

技术分享图片

然后查看log:

技术分享图片

接下来最应该做的就是diff:

技术分享图片

也可以使用可视化工具进行diff:

技术分享图片

下面进行合并:

技术分享图片

不出所料, 冲突发生了, 自动合并失败.

现在的状态, 应该叫做Merging状态.

现在打开index.html是这样的:

技术分享图片

可以看到两处冲突, 每处都有HEAD(master)版的和realwork分支版的.

上图我使用的是Visual Studio Code, 可以点击上面的按钮来进行冲突的解决, 也可以手动修改文件进行解决.

但是在这里我使用我配置好的mergetool:

git mergetool. 这个命令将会打开p4merge(我本机配置的mergetool):

技术分享图片

按图示操作, 点击图标选择不同的版本, 最后点击保存即可.

关闭p4merge:

技术分享图片

然后commit:

技术分享图片

commit之后, 状态就不再是merging了, 但是会出现一个未被追踪的文件:

技术分享图片

这是因为在解决冲突的时候, git会保存一个带有触痛的原始版本, 以备不时之需:

技术分享图片

但是.orig文件是不应该被追踪的, 所以需要添加到.gitignore文件中:

技术分享图片

然后查看状态:

技术分享图片

这次只有.gitignore发生了变化.

commit:

技术分享图片

最后可以删除 realwork 分支了:

技术分享图片

查看log:

技术分享图片

Ok.

 

Git分支(5/5) -- 解决合并的冲突

标签:出现   删除   可视化工具   分享   追踪   合并   分享图片   img   切换   

原文地址:https://www.cnblogs.com/cgzl/p/8623236.html

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