文档章节

Windows下使用Beyond Compare作为git的比对与合并工具

Tek_Eternal
 Tek_Eternal
发布于 2014/11/25 22:15
字数 586
阅读 3.4W
收藏 16

Windows下使用Beyond Compare作为git的比对与合并工具

##介绍 其实各种git的GUI客户端都有自带比对工具,但是一开始学Git的时候,用的是Windows下的Git Bash,后来也渐渐熟悉各种命令,用图形客户端反而不习惯了。 这里介绍如何将Beyond Compare配置为git的difftool和mergetool。当需要比对或者合并冲突时,就可以通过difftool和mergetool调用Beyond Compare进行比对和合并冲突了。

##操作 目前我电脑里安装的是Beyond Compare 4,就介绍一下4的设置,Beyond Compare 3也是类似的。
其实Beyond Compare官网就有介绍 如何配置git的difftool和mergetool,其实就几行git命令。

#difftool 配置
git config --global diff.tool bc4
git config --global difftool.bc4.cmd "\"c:/program files (x86)/beyond compare 4/bcomp.exe\" \"$LOCAL\" \"$REMOTE\""

#mergeftool 配置
git config --global merge.tool bc4
git config --global mergetool.bc4.cmd "\"c:/program files (x86)/beyond compare 4/bcomp.exe\" \"$LOCAL\" \"$REMOTE\" \"$BASE\" \"$MERGED\""
git config --global mergetool.bc4.trustExitCode true

但是我照着上面的步骤配置,使用difftool命令后,发现左右两边都为空白文件。研究了半天没研究出个所以然。 后来突然想起来用户目录下的.gitconfig看看配置情况,才发现原因。 打开配置文件看到的信息差不多是这样:

[diff]
tool = bc4
[difftool]
prompt = false
[difftool "bc4"]
cmd = \"c:/program files (x86)/beyond compare 4/bcomp.exe\" 

.....

使用git bash是执行上述几个命令后,.gitconfig文件中并没有 \"$LOCAL\" \"$REMOTE\"" 的影子,所以使用difftool比对文件时,两边都是空白,因为根本就没有传参数进去。 所以换一个思路,不用命令设置,而是直接编辑.gitconfig文件设置,就没问题了。

.gitconfig文件新增如下配置并保存

[diff]
tool = bc4
[difftool]
prompt = false
[difftool "bc4"]
cmd = "\"c:/program files (x86)/beyond compare 4/bcomp.exe\" \"$LOCAL\" \"$REMOTE\""
[merge]
tool = bc
[mergetool]
prompt = false
[mergetool "bc4"]
cmd = "\"c:/program files (x86)/beyond compare 4/bcomp.exe\" \"$LOCAL\" \"$REMOTE\" \"$BASE\" \"$MERGED\""

然后在git命令行中执行相关命令就ok啦:)

#比对当前文件相对于Head版本的改动
git difftool <file_name>

#当merge <branch_name>提示冲突时,执行下面命令便可以调出bc合并冲突
git mergetool

© 著作权归作者所有

Tek_Eternal
粉丝 11
博文 24
码字总数 16362
作品 0
福州
程序员
私信 提问
加载中

评论(8)

猫咪的尾巴

引用来自“kingjay”的评论

不支持绿色版吗?
是单机版的下载吧链接: http://pan.baidu.com/s/1hrAKGo0 密码: awwg
二师兄_Bill
二师兄_Bill
请问下,最终你能用bc解决git文本冲突了么?
Tek_Eternal
Tek_Eternal 博主

引用来自“code4101”的评论

首先感谢博主分享,这个功能棒棒哒~~然后友情提示下:
“.gitconfig文件新增如下配置并保存”后面的两句cmd代码,末尾漏了一个引号"。
抱歉,引号已补上
Tek_Eternal
Tek_Eternal 博主

引用来自“code4101”的评论

首先感谢博主分享,这个功能棒棒哒~~然后友情提示下:
“.gitconfig文件新增如下配置并保存”后面的两句cmd代码,末尾漏了一个引号"。

引用来自“pianzhaofeng”的评论

太对了,配置好几次原因在这里。。。
抱歉,引号已补上
pianzhaofeng
pianzhaofeng

引用来自“code4101”的评论

首先感谢博主分享,这个功能棒棒哒~~然后友情提示下:
“.gitconfig文件新增如下配置并保存”后面的两句cmd代码,末尾漏了一个引号"。
太对了,配置好几次原因在这里。。。
c
code4101
首先感谢博主分享,这个功能棒棒哒~~然后友情提示下:
“.gitconfig文件新增如下配置并保存”后面的两句cmd代码,末尾漏了一个引号"。
Tek_Eternal
Tek_Eternal 博主

引用来自“kingjay”的评论

不支持绿色版吗?
绿色版配置应该是一样的?你用的是bc3吗,官网上的意思bc3配置有点不一样,你参考下 git for windows BC version 3 那一节 http://www.scootersoftware.com/support.php?zz=kb_vcs
k
kingjay
不支持绿色版吗?
Git利用SourceTree 冲突解决方案

Git现在越来越火,很多人都从Svn迁移到Git上面,Git让我们更加与世界接轨,不再是“局域网”的程序猿,特别是掌握了Git之后,会发现它真的很好用,本文对Git中比较烦人的冲突进行了详细的说明...

u012843873
2018/05/09
0
0
关于在eclipse中GIT使用beyondcompare实现文本对比

在CVS中,Eclipse支持beyondCompare插件实现compareWith,但是GIT可以在eclise中支持使用bc作为文本对比么?希望大神能解答下

二师兄_Bill
2016/08/09
1.3K
0
Beyond Compare 4破解方法

删除文件:“BeyondCompare419.ini”; 文件路径:C:Users用户名AppDataRoamingBeyondCompareBeyondCompare419.ini; 2) 重启BeyondCompare。...

诺岚
2018/05/07
0
0
git中使用beyond compare

在msysgit(1.7.4)版本中使用beyond compare比较,只能打开一组比较文件。 请教这是什么原因引起的, 需要怎么做才能同时比较多只文件?

Aiven
2011/05/17
1.9K
2
git 设置 mergetool,difftool 为 BeyondCompare

卖一下广告,欢迎大家关注我的微信公众号,扫一扫下方二维码或搜索微信号 stormjun,即可关注。 目前专注于 Android 开发,主要分享 Android开发相关知识和一些相关的优秀文章,包括个人总结...

xujun9411
2018/05/28
0
0

没有更多内容

加载失败,请刷新页面

加载更多

mysql中int(11)的列大小是多少?

mysql中int(11)的列大小是多少? 以及可以在此列中存储的最大值? #1楼 mysql中int(11)的列大小是多少? (11) int数据类型的此属性与列的大小无关。 它只是整数数据类型的显示宽度。 从11....

技术盛宴
32分钟前
37
0
聊聊artemis消息的推拉模式

序 本文主要研究一下artemis消息的推拉模式 拉模式 receive activemq-artemis-2.11.0/artemis-jms-client/src/main/java/org/apache/activemq/artemis/jms/client/ActiveMQMessageConsumer.......

go4it
42分钟前
39
0
vue 全局前置守卫引起死循环的原因与解决方法

我们经常会用到全局前置守卫,如判断用户有没有登陆过,如果登陆过就直接跳到目的页面,如果没有登陆过,就跳转到登陆页。 先看官网对全局前置守卫的介绍 使用 router.beforeEach 注册一个全...

tianyawhl
53分钟前
31
0
如何按索引从std :: vector <>擦除元素?

我有一个std :: vector <int>,我想删除第n个元素。 我怎么做? std::vector<int> vec;vec.push_back(6);vec.push_back(-17);vec.push_back(12);vec.erase(???); #1楼 erase方法将以两......

javail
今天
43
0
使用生成器模拟时间分片

对于cpu密集型任务, 时间分片可以有效减少页面卡顿, 不过对于纯计算型任务还是推荐使用worker在后台做计算 效果图, 计算密集型任务被分到每次只执行16ms, 每次执行完毕留给浏览器时间去响应事...

阿豪boy
今天
63
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部