差异内容随重命名而变化

时间:2012-11-07 17:03:08

标签: git

我的项目历史如下:


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

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

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

3 个答案:

答案 0 :(得分:2)

使用git diff -M

它也可以微调 - git diff -M90%来检测90%相似的文件。 (不确定git status默认使用的是什么)

答案 1 :(得分:2)

git diff -C

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

如上面的答案所述

git diff -M

只检测重命名。

答案 2 :(得分:1)

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

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

对你来说可能是

git diff rev1:./a c

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