当前位置: 首页 > 工具软件 > GitDiff > 使用案例 >

git diff / git difftool 第三方工具配置

夏侯玄天
2023-12-01

      git作为分布式版本管理工具,各种强大之处不言自明,但是他的检查文件修改变动的功能不得不说和Svn相比比较弱(当然是指在命令行下),如果在开发环境中去查看修改等功能和svn我个人感觉没有什么差别。但是使用git如果运用开发环境里的插件去使用,有种玷污了强大的git的的嫌疑。命令行下查看git文件修改的可以配置许多第三放工具,这里介绍两种,感觉这两种用着比较舒服。

一:git命令介绍
1.1:git diff/difftool 
git  diff :默认查看当前修改并且没有add 的内容
git diff --cached :查看已经add 并且没有commit 的内容
git diff HEAD 是上面查看上面两种条件的并集。

git diff versinnum1 versinnum2  : 比较两个版本号码文件的修改差异。

 二:diffmerge 配置
1、下载diffmerge
2、配置环境

2.1:在terminal中执行如下命令:
git config --global diff.tool diffmerge
git config --global difftool.diffmerge.cmd 'diffmerge "$LOCAL" "$REMOTE"'
git config --global merge.tool diffmerge
git config --global mergetool.diffmerge.cmd 'diffmerge --merge --result="$MERGED" "$LOCAL" "$(if test -f "$BASE"; then echo "$BASE"; else echo "$LOCAL"; fi)" "$REMOTE"'
git config --global mergetool.diffmerge.trustExitCode true
2.2:或者在~/.gitconfig中添加如下代码。
[diff]
    tool = diffmerge
[difftool "bc3"]
    cmd = /usr/bin/bcompare \"$LOCAL\" \"$REMOTE\"
[merge]
    tool = diffmerge
[difftool]
    prompt = false
[mergetool "bc3"]
    cmd = /usr/bin/bcompare \"$LOCAL\" \"$REMOTE\" \"$BASE\" \"$MERGED\"
[difftool "diffmerge"]
    cmd = diffmerge \"$LOCAL\" \"$REMOTE\"
[mergetool "diffmerge"]
    cmd = "diffmerge --merge --result=\"$MERGED\" \"$LOCAL\" \"$(if test -f \"$BASE\"; then echo \"$BASE\"; else echo \"$LOCAL\"; fi)\" \"$REMOTE\""
    trustExitCode = true

三:beyond compare配置。

3.1:下载beyond compare(最好搜索破解版下载哈)

下载地址:http://www.scootersoftware.com/BCompareOSX-4.1.6.21095.zip,安装成功然后打开,在菜单中点击安装命令行。

3.2:在~/.gitconfig中添加如下配置。
[diff]
    tool = bcomp
[difftool "bcomp"]
    cmd = \"/usr/local/bin/bcomp\" \"$LOCAL\" \"$REMOTE\"
[difftool]
    prompt = false
[merge]
    tool = bcomp
[mergetool]
    prompt = false
[mergetool "bcomp"]
    cmd = \"/usr/local/bin/bcomp\" \"$LOCAL\" \"$REMOTE\" \"$BASE\" \"$MERGED\"

3.3:上面两种任何一种配置成功后,执行如下:
在terminal下运行如命令,用来查看工作区和缓存区的文件修改情况:
git difftool ,显示场景:会依次打开比较修改的文件(这样就可以在关闭一个,就自动打开下一个修改的文件)
git difftool HEAD -- readme.txt(比较当前文件ready.text的修改情况)。
git difftool命令的用法应该和git diff一样,只是配置好git difftool工具后可以以更加友好的方式打开。

四:附带一份亲测可用的Mac OS  .gitconfig文件

[user]
	name  = ******
	email = ******@163.com
[alias]
	lg = log --pretty=format:'%C(auto) %h | %ai | %Cred %an %Cgreen %s'
	st = status
	ci = commit
	dt = difftool
	mt = mergetool
[difftool]
	prompt = false
[diff]
	tool = bc
[difftool "bc"]
	cmd = \"/Applications/Beyond Compare.app/Contents/MacOS/bcomp\" \"$LOCAL\" \"$REMOTE\"
[mergetool "bc"]
	cmd = \"/Applications/Beyond Compare.app/Contents/MacOS/bcomp\" \"$LOCAL\" \"$REMOTE\" \"$(if test -f \"$BASE\"; then echo \"$BASE\"; else echo \"$LOCAL\"; fi)\" \"$MERGED\"
	trustExitCode = false

 

 类似资料: