与主题一样:如何显示某些或所有文件之间的差异?
抱歉,我搞砸了我的问题。我的意思是分支之间存在一个或多个或所有文件的差异。
答案 0 :(得分:24)
或者可能更有帮助:
git diff <commit1> <commit2> -- path/to/file.cpp path/to/anotherfile.cpp path/to/subdir
你也可以(例如bash)
git diff {<commit1>,<commit2>}:path/to/file.cpp
这样你甚至可以
git diff <commit1>:path/to/file.cpp <commit2>:path/to/anotherfile.cpp
这是非常疯狂的强大,恕我直言。
将<commit1>
和<commit2>
替换为任何标记名称,分支(本地或远程)或提交的直接sha1哈希(这称为 commit-ish )
要获得真正的时髦,您可以根据需要指定树形或灰色哈希。为样本做一些完全愚蠢的事情:
$ git ls-tree HEAD^ | grep blob | sort -R | head -2
100644 blob 27785581e788049ac805fab1d75744dd7379735d .gitignore
100644 blob 2821a5271ffd8e6b11bb26b8571f57e88ab81f38 TESTING
$ git diff --stat 2821a5271ffd8e6b11bb26b8571f57e88ab81f38 aa96765714a3058068c4425d801fab4b64e26066
...f38 => aa96765714a3058068c4425d801fab4b64e26066 | 155 +++++++++++++++++---
1 files changed, 135 insertions(+), 20 deletions(-)
现在你通常不会这样做,除非你在repo中有多个版本的'same'文件(如果你问我,那就是iffy)。
答案 1 :(得分:15)
答案 2 :(得分:1)