diff git 代码实现_[转]更好的使用git difftool来做代码比较
功能强大的git提供了diff功能,来比较不同的branch、commit等等。但是默认的gitdiff是在Terminal里面显示的,查看起来比较费劲。git自己也深知这一点,所以提供对第三方diff工具的支持。这里就抛砖引玉,讲一下如何利用git difftool和diffmerge来多代码比较。首先diffmerge是一款跨平台的免费软件,支持Windows, Mac OS,Ubuntu以及
功能强大的git提供了diff功能,来比较不同的branch、commit等等。但是默认的git
diff是在Terminal里面显示的,查看起来比较费劲。git自己也深知这一点,所以提供对第三方diff工具的支持。
这里就抛砖引玉,讲一下如何利用git difftool和diffmerge来多代码比较。
首先diffmerge是一款跨平台的免费软件,支持Windows, Mac OS,
Ubuntu以及Fedora。>>点此下载diffmerge<<
注意,因为git需要在Terminal下调用diffmerge,所以下载的时候要下载Installer版的。这样在安装的时候就自动将diffmerge写入环境变量,就可以在命令行下调用diffmerge了。否则在后面使用的时候会出现如下错误:
/usr/libexec/git-core/git-mergetool--lib: line 327: diffmerge:
command not found
下载并安装好diffmerge之后,就需要来配置git了。在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
这些命令的作用其实就是修改用户目录下的.gitconfig文件。比如这是的我的~/.gitconfig文件:
.gitconfig git diff
好了,接下来就可以使用git difftool命令来比较代码了:
# 将某个文件的当前版本和代码库中的版本做比较
git difftool index.php
# 将某个文件的当前版本,和某个分支中这个文件的版本做比较
git difftool some-branch script.js
# 将两个tag中的某个文件做比较
git difftool tag1..tag2 style.css
# 比较两个分支
git difftool branch1 branch2
成功运行的话就会出现diffmerge的窗口。这使查看比较大量的代码更新变得方便直观。
DiffMerge & Git
另外还可以用git mergetool来解决merge时的冲突。
当然git不只支持diffmerge,还可以凭你自己的喜好选用其他的第三方软件,包括但不限于:
kdiff3, kompare, tkdiff, meld, xxdiff, emerge, vimdiff, gvimdiff,
ecmerge, diffuse, opendiff, p4merge, araxis等等。
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)