在使用了一圈 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~2HEAD^^~3HEAD^^^^^

  • 比较特定文件
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相关推荐

  1. git difftool 之 vimdiff

    git difftool 之 vimdiff 1. vimdiff的使用 1.1 What is vimdiff 在类nuix平台,我们希望对文件之间的差异之间快速定位,希望能够很容易的进行文件合并- ...

  2. git添加diff tool和merge tool

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一.安装beyong compare 4 二.git配置 1.命令行配置 2.配置文件配置 三.使用 前言 使用git ...

  3. Git下使用Beyond Compare作为比较和合并工具

    转载自:http://blog.csdn.net/zzqhost/article/details/7298405 Git下使用Beyond Compare作为比较和合并工具 建议配置在~/.gitco ...

  4. Git 配置 Beyond Compare

    查看 difftool.mergetool 插件的情况 git difftool --tool-help git mergetool --tool-help 配置 我的配置文件如下 C:\Users\ ...

  5. 为Windows git 配置比较工具为beyond compare

    不得不说,git默认的diff工具是我见过的最差的比较工具了,所以没法用,下面步骤讲比较工具设置为beyondcompare. 1.打开git bash 2.进入到~目录,修改.gitconfig文件 ...

  6. Windows下Git使用Winmerge作为difftool

    Windows下Git使用Winmerge配置如下: Step1:在指定目录创建 winmerge.bat,内容如下.(例C:\winmerge.bat) "$PROGRAMFILES/Wi ...

  7. 如何解决Git中的合并冲突

    如何解决Git中的合并冲突? #1楼 对于想要半手动解决合并冲突的Emacs用户: git diff --name-status --diff-filter=U 显示所有需要解决冲突的文件. 依次打开 ...

  8. Git 基础 —— 安装 配置 别名 对象

    Git 基础学习系列 Git 基础 -- 安装 配置 别名 对象 Git 基础 -- 常用命令 Git 基础 -- 常见使用场景 Git基础 -- Github 的使用 Git 安装 Git下载地址 ...

  9. 什么是Git最好的视觉合并工具? [关闭]

    在Git中查看和编辑合并的最佳工具是什么? 我想得到一个3向合并视图,在单独的面板中有"我的","他们的"和"祖先",以及第四个" ...

  10. Win7环境下Cygwin中Git可视化配置(gitk配置)

    我们知道cygwin可以在windows系统中模拟linux开发环境,自然我们也就能够在其中配置git,配置git的教程很多了,网上一搜一大把,这里给一篇吧(不一定保证对),童鞋们可以去看看这篇Win ...

最新文章

  1. Ubuntu 安装mysql和简单操作
  2. jquery的disabled
  3. 有状态服务和无状态服务的区别与联系
  4. 【LeetCode笔记】234. 回文链表(Java、快慢指针、链表)
  5. oracle ebs工单入库,ORACLE-EBS_库存功能点操作模块.doc
  6. Microsoft Visual Studio 2012 旗舰版 镜像 ISO 官方下载地址 旗舰版 序列号 SN VS2012_ULT_chs.iso
  7. 初次尝试使用VisualSFM记录
  8. 【勒索病毒数据恢复】Phobos勒索病毒家族之.[back23@vpn.tg].makop
  9. 【源码】垂直偶极子天线的矩量法
  10. 45 个 Git 经典操作场景---教你如何合并代码
  11. 云仓一件代发模式与即时分账,会碰撞出什么火花?
  12. c++头文件防卫式声明
  13. voip系统与网络电话
  14. explicit含义
  15. 基于FME的水库功能分区生态红线批量处理方案(从文本到gdb)
  16. iOS 快速接入腾讯虚拟人特效 Avatar
  17. oracle存储过程批量导入数据,Oracle 存储过程之批量添加数据
  18. 我们应该如何看待马斯克心心念念的“超循环”技术
  19. 2014校园招聘总结(转载)
  20. Angular应用的文档生成工具——Compodoc

热门文章

  1. (java毕业设计)基于java汽车租赁管理系统源码
  2. 简说阿里云服务器搭建与简单项目部署
  3. javascript编辑器_评论:10个最佳JavaScript编辑器
  4. CPCL简易打印模板设计
  5. 安卓手机如何防盗_如何使用IMEI号码追踪丢失的安卓(Android)手机
  6. DTcmsV4.0分析学习——(2)系统框架
  7. 逆变H桥IGBT单管驱动+保护
  8. 通过exe解决kindle for pc中文书籍无法修改字体的问题
  9. 无需Root实现Android手机屏幕流畅投影到电脑进行演示(附软件下载)
  10. 基于Python实现的Cholesky分解与Crout分解