赞
踩
git diff 比较所有有变化文件
git diff file 比较特定文件
默认是暂存区和 HEAD 的比较
git diff --cached 比较暂存区和 HEAD 所有变化文件
git diff --cached file 比较暂存区和 HEAD 特定文件
可以和任意本地仓库的 commit id 作比较
git diff e69de29 和 commit id 比较
git diff HEAD 和 HEAD 比较
git diff dev 和 dev 分支比较
中间可以写空格,也可以写两个点,效果一样。
git diff commit1 commit2
git diff commit1..commit2
有点拗口。先解释一下 merge base 。
如图,commit C 和 commit G 的 merge base 就是 commit E
C 和 G 的 merge base 是 E,C...G
表示 E 和 G 的 diff。
git diff C...G
等价于 git diff $(git merge-base C G) G
git merge-base 用来获取 C G 的 最近的基点
这种三个点的 diff 还是很有用的。比如我们想看下 topic 分支自从打分支以来一共做了哪些修改,可以用 git diff G...C
。
前面的 git diff G...C
也可以用分支名,git diff master...topic
。
可以查具体的文件。
git diff G...C -- a.txt
其中的 – 是为了分隔文件名,一般情况下可以省略。
直接比较的意思是,不涉及版本,直接比较当前两个文件的内容。
git diff --no-index a.txt b.txt
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。