git diff简单使用, 不想–help时。。

git diff的一些简单小技巧

git diff –help就能打开git diff的手册,随时参阅

常用方式:

  1. git diff [–options] [–] […​]

    git diff是将工作区和暂存区diff,之前未跟踪的文件不会diff,可以指定path进行diff

    1
    git diff --stat -- folder/
  2. git diff [–options] –cached []

    –cached选项是将暂存区和指定的commit进行diff,commit不填的话会和当前的HEAD进行diff。
    不提供–cached就是工作区和commit进行difff

  3. git diff [–options]

    两个commit进行diff,这里的commit都可以换成tag

  4. git diff branchNameA..branchNameB

    两个分支进行diff,有时比较有用

常用选项

  1. –stat

    显示一个简单的status

    1
    2
    3
    4
    a.txt         | 1 +
    gitdiff/a.js | 4 +++-
    gitdiff/b.css | 3 ++-
    3 files changed, 6 insertions(+), 2 deletions(-)
  2. –name-only

    1
    2
    3
    a.txt
    gitdiff/a.js
    gitdiff/b.css

    显示修改了哪些文件

  3. –name-status

    1
    2
    3
    A       a.txt
    M gitdiff/a.js
    M gitdiff/b.css

    显示修改的文件和状态。A: 新增,M:修改

  4. – path

    指定diff的路径

git difftool

git的默认diff界面比较geek,有时候GUI可能方便一点,git允许我们和其他diff工具集成使用

使用

1
git difftool --tool-help

查看目前git版本支持的diff工具

1
git difftool --help

查看git difftool手册配置下diff工具

比如我要配成beyond compare:

1
2
3
git config --global diff.tool bc3 
# 假如bc不在$PATH下不能直接调用的话,还要设下path
git config --global difftool.bc3.path "bc的路径"

中文教程的:

然后直接使用

1
git difftool [options]

和git diff命令类似,就可以打开指定的diff工具一个一个对比了

P.S: 如果再进一步折腾的话做到直接diff目录(如果你配置的diff工具支持目录比对的话)