优雅地乱玩Linux-5-GitMerge工具Meld

作者: szhielelp | 来源:发表于2017-07-02 00:03 被阅读81次

    文章最初发表于szhshp的第三边境研究所
    转载请注明

    你真的不需要一个Git Merge Tool?

    Git的命令行来查看diff有些时候也是很鸡肋的。

    Screenshot from 2017-07-01 23-04-17.png

    Windows习惯使用TortoiseGit进行各种Merge操作,到了Linux也应该准备一个。

    安装

    一行代码解决所有问题

    sudo apt-get install meld

    使用

    正常情况下输入meld会开启一个empty view

    当然如果后面加一个repo路径的话就可以查看对应的diff了

    Step1: 设置Git默认difftool为meld

    设置meld为默认difftool

    git config --global diff.tool meld
    

    另外如果之后想换其他工具只要改一下meld就行

    之后在运行:

    git difftool
    

    就会对当前repo进行diff查看,当然meld可以同时进行merge操作

    Screenshot from 2017-07-01 23-04-39.png

    Step2: 取消difftool的验证弹框/diff without prompt

    查看所有difftool参数的命令

    man git-difftool
    
    OPTIONS
       -y, --no-prompt
       Do not prompt before launching a diff tool.
    

    简单易懂,后面加个-y参数即可

    git difftool -y
    

    Step3: 使用Meld对整个repo进行Diff/Merge

    但是依然很麻烦因为对应多个文件meld会依次弹出来,于是我又搜一下如何一次性diff整个文件夹

    答案也很简单

    Starting with git v1.7.11, you can use git difftool --dir-diff to perform a directory diff.

    The answer that follows applies to git installations older than v1.7.11.

    于是最终diff命令变成了:

    git difftool -y --dir
    

    Step Extra: 简化命令

    这命令太麻烦了居然还有三个参数完全记不住怎么办

    ZSH: (:з」∠)呵呵

    打开ZSH的配置文件:

    gedit ~/.zshrc
    

    然后在alias下面加一行:

    # Example aliases
    # alias ohmyzsh="mate ~/.oh-my-zsh"
    alias jkl='jekyll s'
    alias subl='LD_PRELOAD=./libsublime-imfix.so subl'
    alias gdiff="git difftool -y --dir"
    

    当然这里的别名可以随便换,修改后保存重开Terminal就可以使用gdiff对当前repo进行diff和merge了

    Screenshot from 2017-07-01 23-07-49.png

    参考文献

    相关文章

      网友评论

        本文标题:优雅地乱玩Linux-5-GitMerge工具Meld

        本文链接:https://www.haomeiwen.com/subject/nttncxtx.html