3

我的项目历史如下所示:


  • 编辑文件 a, b
  • 提交,rev1
  • 重命名文件 a, b -> c, d
  • 提交,rev2
  • 编辑文件 c, d
  • 提交,rev3

我想查看我在这些提交中对两个文件所做的编辑的差异,但这git diff rev0..rev3没有帮助,因为我只看到文件 a 和 b 的删除,以及对 c 和 d 的所有编辑作为一个大添加与文件的创建混在一起。

如何查看包含 rev1 和 rev3 的差异,其中 ((a,c), (b,d)) 被视为相同的文件,而差异中没有文件重命名混乱?

4

3 回答 3

2

使用git diff -M.

它还可以进行微调 -git diff -M90%检测 90% 相似的文件。(不确定git status默认情况下使用什么)

于 2012-11-07T17:20:59.320 回答
2
git diff -C

将在重命名之间进行区分,并且还会检测副本。

正如上面的答案中提到的

git diff -M

检测只是重命名。

于 2012-11-07T17:22:57.503 回答
1

git diff将接受类型的参数<rev>:<filename。用于git log --follow <file>查找您想要的版本以及该版本的文件名称。例如(在我的代码上,它过去被转换为 C++)

git diff 44308:./draw.c draw.cpp

对你来说可能是

git diff rev1:./a c

我发现我需要指定文件的路径,否则 git 本身给了我一个提示。

于 2016-02-11T11:58:28.937 回答