git difftool 使用 p4merge,DiffMerge 或者 Beyond Compare 4
在使用了一圈 git 的 GUI 后,个人感觉还是命令行靠谱,但是命令行查看diff
确实不方便,尤其是显示两个文件的不同之处的界面。好在 git difftool 调用第三方文本比较软件可以解决一部分问题。
目录
- Git
- P4Merge
- 下载P4Merge
- 设置 git difftool 为 P4Merge
- DiffMerge
- 下载 DiffMerge
- 设置 git difftool 为 DiffMerge
- Beyond Compare 4
- 安装 Beyond Compare 4
- 设置 git difftool 为 Beyond Compare 4
- git difftool 的简单使用
- 最后
Git
已经习惯了 GUI 的话,可能需要仔细学习一下 Git 的命令行,官方教程挺不错的,虽然关于 difftool 的部分没有仔细说明。
如下链接,可以在线阅读,也可以下载 pdf 版本,或者 epub 版本。
《Pro Git book》
P4Merge
下载P4Merge
https://www.perforce.com/downloads/visual-merge-tool
打开上面链接,选择相应的操作系统,以及合适的硬件(32位或64位),下载安装包并安装。
设置 git difftool 为 P4Merge
git config --global merge.tool p4merge
git config --global mergetool.p4merge.path "C:\Program Files\Perforce\p4merge.exe"
git config --global --list
git difftool
注意p4merge.exe的位置,需要参考自己的实际安装位置。
git difftool
需要在某个 git 仓库所在目录下运行。
如果启动 P4Merge 后出现中文乱码或者其他问题,需要在菜单 File
- Character Encoding
里选择 UTF-8
(或者文件中的中文相应的编码方式)
另外,对于 macOS, 设置方法可能是
git config --global merge.tool p4merge
git config --global mergetool.p4merge.path "/Applications/p4merge.app/Contents/MacOS/p4merge"
git config --global --list
git difftool
注意在macOS下退出P4Merge时,需要使用按键 Cmd
+ Q
完全退出 P4Merge
DiffMerge
下载 DiffMerge
https://www.sourcegear.com/diffmerge/downloads.php
打开上面链接,选择相应的操作系统,以及合适的硬件(32位或64位),下载安装包并安装。
设置 git difftool 为 DiffMerge
git config --global merge.tool diffmerge
git config --global mergetool.diffmerge.path "C:\Program Files\SourceGear\Common\DiffMerge\sgdm.exe"
git config --global --list
git difftool
注意sgdm.exe
的位置,需要参考自己的实际安装位置。
git difftool
需要在某个 git 仓库所在目录下运行。
启动 Diffmerge 后,如果出现中文乱码或者其他问题,需要设定 UTF-8
,在菜单 Tools
- Options
中的 Custom Rulesets
- 取消选中 Enable Custom Rulesets
,然后在 Default Ruleset
中设定 Use Named Encoding Below
- UTF-8
。
Beyond Compare 4
安装 Beyond Compare 4
bc4是需要购买的,这里我就不介绍下载和安装步骤了。
设置 git difftool 为 Beyond Compare 4
git config --global merge.tool bc4
git config --global mergetool.bc4.path "C:\Program Files\Beyond Compare 4\BComp.exe"
git config --global --list
git difftool
注意BComp.exe
的位置,需要参考自己的实际安装位置。
git difftool
需要在某个 git 仓库所在目录下运行。
git difftool 的简单使用
以下操作都需要在git仓库所在的目录下进行
- 比较工作区或暂存区相对于最后一次commit所作的所有更改
git difftool
或者
git difftool HEAD
- 对比最后一次commit和倒数第二次commit之间的更改
git difftool HEAD^ HEAD
或者对于dos命令行,需要使用
git difftool "HEAD^" HEAD
也可以试试 HEAD^^
, HEAD~2
, HEAD^^~3
, HEAD^^^^^
。
- 比较特定文件
git difftool HEAD -- 文件名(可以带通配符)
- 比较指定的两次commit之间的更改,使用相应commit的hash的开头(当然如果不嫌太长,完整hash也是可以的),例如
git difftool a9a3cc9 4f455d -- hello.txt
或者,如下比较两次commit的所有文件的更改
git difftool a9a3cc9 4f455d
- 比较暂存区和最后一次commit的区别
git difftool --staged HEAD
- git difftool 比较时,如果不希望出现类似提示
Launch 'diffmerge' [Y/n]?
临时解决办法:使用git difftool -y
永久解决办法:git config --global --add difftool.prompt false
最后
- difftool 只是解决了 diff 显示不直观的问题,如果想方便的查看每次commit的作者等信息,hash,以及有哪些文件发生变化,并选择这些文件进行比较,则需要更多的 git 命令。
但是,也可以用python脚本实现一个自己定制的 git 命令行前端,以实现自己需求。
- 个人比较推荐 P4Merge , 免费,功能也够用。
git difftool 使用 p4merge,DiffMerge 或者 Beyond Compare 4相关推荐
- git difftool 之 vimdiff
git difftool 之 vimdiff 1. vimdiff的使用 1.1 What is vimdiff 在类nuix平台,我们希望对文件之间的差异之间快速定位,希望能够很容易的进行文件合并- ...
- git添加diff tool和merge tool
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一.安装beyong compare 4 二.git配置 1.命令行配置 2.配置文件配置 三.使用 前言 使用git ...
- Git下使用Beyond Compare作为比较和合并工具
转载自:http://blog.csdn.net/zzqhost/article/details/7298405 Git下使用Beyond Compare作为比较和合并工具 建议配置在~/.gitco ...
- Git 配置 Beyond Compare
查看 difftool.mergetool 插件的情况 git difftool --tool-help git mergetool --tool-help 配置 我的配置文件如下 C:\Users\ ...
- 为Windows git 配置比较工具为beyond compare
不得不说,git默认的diff工具是我见过的最差的比较工具了,所以没法用,下面步骤讲比较工具设置为beyondcompare. 1.打开git bash 2.进入到~目录,修改.gitconfig文件 ...
- Windows下Git使用Winmerge作为difftool
Windows下Git使用Winmerge配置如下: Step1:在指定目录创建 winmerge.bat,内容如下.(例C:\winmerge.bat) "$PROGRAMFILES/Wi ...
- 如何解决Git中的合并冲突
如何解决Git中的合并冲突? #1楼 对于想要半手动解决合并冲突的Emacs用户: git diff --name-status --diff-filter=U 显示所有需要解决冲突的文件. 依次打开 ...
- Git 基础 —— 安装 配置 别名 对象
Git 基础学习系列 Git 基础 -- 安装 配置 别名 对象 Git 基础 -- 常用命令 Git 基础 -- 常见使用场景 Git基础 -- Github 的使用 Git 安装 Git下载地址 ...
- 什么是Git最好的视觉合并工具? [关闭]
在Git中查看和编辑合并的最佳工具是什么? 我想得到一个3向合并视图,在单独的面板中有"我的","他们的"和"祖先",以及第四个" ...
- Win7环境下Cygwin中Git可视化配置(gitk配置)
我们知道cygwin可以在windows系统中模拟linux开发环境,自然我们也就能够在其中配置git,配置git的教程很多了,网上一搜一大把,这里给一篇吧(不一定保证对),童鞋们可以去看看这篇Win ...
最新文章
- Ubuntu 安装mysql和简单操作
- jquery的disabled
- 有状态服务和无状态服务的区别与联系
- 【LeetCode笔记】234. 回文链表(Java、快慢指针、链表)
- oracle ebs工单入库,ORACLE-EBS_库存功能点操作模块.doc
- Microsoft Visual Studio 2012 旗舰版 镜像 ISO 官方下载地址 旗舰版 序列号 SN VS2012_ULT_chs.iso
- 初次尝试使用VisualSFM记录
- 【勒索病毒数据恢复】Phobos勒索病毒家族之.[back23@vpn.tg].makop
- 【源码】垂直偶极子天线的矩量法
- 45 个 Git 经典操作场景---教你如何合并代码
- 云仓一件代发模式与即时分账,会碰撞出什么火花?
- c++头文件防卫式声明
- voip系统与网络电话
- explicit含义
- 基于FME的水库功能分区生态红线批量处理方案(从文本到gdb)
- iOS 快速接入腾讯虚拟人特效 Avatar
- oracle存储过程批量导入数据,Oracle 存储过程之批量添加数据
- 我们应该如何看待马斯克心心念念的“超循环”技术
- 2014校园招聘总结(转载)
- Angular应用的文档生成工具——Compodoc
热门文章
- (java毕业设计)基于java汽车租赁管理系统源码
- 简说阿里云服务器搭建与简单项目部署
- javascript编辑器_评论:10个最佳JavaScript编辑器
- CPCL简易打印模板设计
- 安卓手机如何防盗_如何使用IMEI号码追踪丢失的安卓(Android)手机
- DTcmsV4.0分析学习——(2)系统框架
- 逆变H桥IGBT单管驱动+保护
- 通过exe解决kindle for pc中文书籍无法修改字体的问题
- 无需Root实现Android手机屏幕流畅投影到电脑进行演示(附软件下载)
- 基于Python实现的Cholesky分解与Crout分解