当使用 git blame -M 来检测一个文件中的代码移动时,我得到了我无法向自己解释的结果。
首先我提交以下文件(file.cpp):
void func1(){return;}[CR][LF]
int func2(){return 23;}[CR][LF]
然后我通过移动第一行中的内容并添加新内容来修改它:
float newFunc(){return 23.0;}[CR][LF]
int func2(){return 23;}[CR][LF]
[CR][LF]
[CR][LF]
void func1(){return;}[CR][LF]
日志现在如下所示:
>git log --oneline -2
18c670f modified file.cpp
92b4186 added file.cpp
现在我责备:
git blame -s -w -M file.cpp
18c670fa 1) float newFunc(){return 23.0;}
92b4186d 2) int func2(){return 23;}
18c670fa 3)
18c670fa 4)
18c670fa 5) void func1(){return;}
我想知道为什么包含 func1() 的行不被识别为已移动。我试图减少所需字符的数量(即 -M4 等)。此外,由于 -w 选项,空格应该无关紧要。