git的命令行貌似没有特别好用的UI工具,不管是Android Studio自带的还是其他的,完全代替命令行好像做不到。再加上对git来说没什么比diff和merge更正常不过的事情了。那就配置命令行吧。

Git鼓励在工作流程中频繁使用分支与合并,哪怕一天之内进行许多次都没有关系。理解分支的概念并熟练运用后,你才会意识到为什么Git是一个如此强大而独特的工具,并从此真正改变你的开发方式。” 不是我说的,但是很贴切。

我用的工具是 DiffMerge,比较轻,官网是:http://www.sourcegear.com/diffmerge/

安装在 c 盘之后,需要在git里面配置下,DiffMerge_4.2.0.697.stable_x64 .msi,其中exe为C:\Program Files\SourceGear\Common\DiffMerge\sgdm.exe。

具体流程

1.安装DiffMerge

2.配置sgdm.exe路径C:\Program Files\SourceGear\Common\DiffMerge到windows环境变量的path下

3.配置git

git config --global diff.tool sgdm
git config --global difftool.diffmerge.cmd 'sgdm "$LOCAL" "$REMOTE"'
git config --global merge.tool sgdm
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

4.用DiffMerge

在代码处理MERGING状态时,可以用命令 git mergetool 启动工具

补:

问题1:

工具会生成.orig文件,可以设置下,让git不再生成:

git config --global mergetool.keepBackup false

问题2:

$ git mergetool
git config option merge.tool set to unknown tool: sgdm
Resetting to default... This message is displayed because 'merge.tool' is not configured.
See 'git mergetool --tool-help' or 'git help config' for more details.
'git mergetool' will now attempt to use one of the following tools:
tortoisemerge emerge vimdiff
No files need merging

  按照提示,说明git有对merge工具做校验

13051041@CNHQ-13051041N MINGW64 /d/gittest/Test (temp|MERGING)
$ git mergetool --tool-help
'git mergetool --tool=<tool>' may be set to one of the following:
tortoisemerge
vimdiff
vimdiff2
vimdiff3 user-defined:
diffmerge.cmd diffmerge --merge --result="$MERGED" "$LOCAL" "$(if test -f "$BASE"; then echo "$BASE"; else echo "$LOCAL"; fi)" "$REMOTE" The following tools are valid, but not currently available:
araxis
bc
bc3
codecompare
deltawalker
diffmerge
diffuse
ecmerge
emerge
gvimdiff
gvimdiff2
gvimdiff3
kdiff3
meld
opendiff
p4merge
tkdiff
winmerge
xxdiff Some of the tools listed above only work in a windowed
environment. If run in a terminal-only session, they will fail.

  我的解决方案是吧sgdm.exe文件复制一份,名字改成diffmerge.exe。还是放在他原来的文件夹下。

修改后,设置脚本所下所示:

git config --global diff.tool diffmerge
git config --global difftool.diffmerge.cmd 'sgdm "$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
git config --global mergetool.keepBackup false

  

配置git DiffMerge工具的更多相关文章

  1. webstorm 配置git代码项目管理工具

    1.下载最新的webStrom11安装包安装 https://confluence.jetbrains.com/display/WI/Previous+WebStorm+Releases/ 2.破解w ...

  2. 使用Jenkins配置Git+Maven的自动化构建

    Jenkins是一个开源的持续集成工具,应用Jenkins搭建持续集成环境,可以进行自动构建.自动编译和部署,非常方便. 在服务器比较少的情况下,Jenkins的优势并不明显,但是随着项目发展,服务器 ...

  3. 使用Jenkins配置Git和Maven的自动化构建

    Jenkins是一个开源的持续集成工具,应用Jenkins搭建持续集成环境,可以进行自动构建.自动编译和部署,非常方便. 在服务器比较少的情况下,Jenkins的优势并不明显,但是随着项目发展,服务器 ...

  4. 快速入门系列--GIT版本控制工具

    由于GIT刚刚开始使用不久,经常会在Merge时出现没有change-id的情况,在结合gerrit使用时,经常出现不能提交的情形,使得自己很困扰.最近有次熬夜加班,在代码完成后,由于多人在很短时间内 ...

  5. Windows下配置Git服务器和客户端 超全

    为了配合Redmine使用,特地用Git来做版本控制. Git Candy© 是一个基于ASP.NET MVC的Git分布式版本控制平台,Git Candy的目标是轻松干掉Bonobo,逐渐追赶Git ...

  6. Android studio配置Git

    Android studio配置Git 1.下载window 版git并安装:下载地址 2.Android Studio设置git插件:File->Setting->Version Con ...

  7. Git版本工具的使用

    Git版本工具:Git是一个开源的分布式版本控制系统,可用于敏捷高效的处理任何或大或小的项目.详细介绍地址:https://git-scm.com/downloads.今天主要为大家分享一下怎样把本地 ...

  8. Windows环境下利用github快速配置git环境

    在windows环境下利用github客户端我们可以直接拥有可视化的界面来管理工程,当然你也可以选择你喜欢的命令行工具来做.今天我分享一个比较快速的方式来配置git环境. 先去下载github的win ...

  9. Git版本控制工具(一)----git的安装及创建版本库

    ​[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/ ...

随机推荐

  1. ACM位运算技巧

    ACM位运算技巧 位运算应用口位运算应用口诀位运算应用口诀 清零取反要用与,某位置一可用或 若要取反和交换,轻轻松松用异或 移位运算 要点 1 它们都是双目运算符,两个运算分量都是整形,结果也是整形. ...

  2. Create Dynamic Modal Dialog Form in AdminLTE Bootstrap template

    原文地址 Create modal dialog form in jquery using bootstrap framework, slightly different from the usual ...

  3. 修改SR4000自带软件,支持opencv

      /*----------------------------------------------------------------------------- * * 版权声明: * 可以任意转载 ...

  4. Html笔记(六)超链接

    超链接标签: <a> 两种用法: 一.超链接 <a href=""> 例: <a href="http://www.sina.com.cn& ...

  5. Galgame引擎编写,实现对话文本显示

    class cTalk { public: cTalk(); ~cTalk(); void Init(); void Shutdown(); void SetSpeed(int speed); voi ...

  6. Linux 下svn恢复到某一版本

    经常由于坑爹的需求,功能要切回到之前的某一个版本.有两种方法可以实现: 方法1: 用svn merge 1) 先 svn up,保证更新到最新的版本,如20: 2) 然后用 svn log ,查看历史 ...

  7. Storm系列(十二)架构分析之Worker-心跳信息处理

    Worker通过worker-data方法定义了一个包含很多共享数据的映射集合,Worker中很多方法都依赖它 mk-worker 功能: 创建对应的计时器.Executor.接收线程接收消息   方 ...

  8. Kafka系列(一)安装和配置说明

    单机模式 修改kafak安装文件中 .../kafka_2.9.2-0.8.1.1/config 下面的server.properties 配置文件 1.broker.id=0   [默认不用修改,该 ...

  9. get方法

    public string HttpGet(string Url, string postDataStr) { HttpWebRequest request = (HttpWebRequest)Web ...

  10. 七行jquery代码实现图片渐变切换【兼容ie6+、 Chrome、 Firefox】

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...