我使用 perl 脚本修改了 php git 存储库中的所有制表符并将它们全部更改为 4 个空格。
$ find -iname \*.php -exec perl -pi -e "s/\t/ /g" {} \
我可以使用 git commit
提交此更改,但在完成此提交后,它会将我标记为 git blame
中所有更改行的作者。
有没有什么方法可以提交这个巨大的更改,而不是将我标记为更改行的作者,但保留原作者?我们真的不想在我们的项目中失去很多历史。
我们用 4 个空格替换制表符的目的不是让 git blame 中的东西看起来不同,而是为了遵循正确的 PEAR 编码标准。例如。没有制表符,使用 4 个空格缩进。
最佳答案
决定如何处理空格不是 commit 命令的责任,而是 blame 命令的责任,因为它是 blame 分析版本之间的差异以获得每一行的作者。所以在 blame 中寻找忽略空格的选项:
选项 -w 定义为: “比较父版本和子版本以查找行的来源时忽略空格。” http://kernel.org/pub/software/scm/git/docs/git-blame.html
关于Git 提交不会覆盖 git blame 中的原始作者,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3945382/