Git 提交不会覆盖 git blame 中的原始作者

标签 git git-commit git-blame

我使用 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/

相关文章:

git - 在Git中找到一行代码的第一个存在

git - 在一系列 git 提交中提取对单个文件的更改

android - 如何配置 Android Studio 在文件末尾添加新行?

git - 计算 git 提交之间的时间

git - 如何自动检测 Git 提交或 rebase 是否包含类似 "<<<<< HEAD"的内容?

git - 让 TravisCI 提交并推送带有标签(发布)的修改后的文件

java - 获取 404 虽然我的应用程序已部署

git - 如何让 git 列出特定路径中特定类型的所有已更改文件以解决特定错误?

当前分支中不存在的文件的 git blame