为了清理我们的代码,我们想使用 astyle。问题是我们希望有人做这项工作,但责怪以前的提交者(代码的真正作者,而不是清理者)。
有没有办法在 git 中安全地做到这一点?
问题是当你清楚地考虑它时。你让一个人更改你的代码,但你看不到这是清理期间的人。那将是非常愚蠢的。
所以在我看来,你不应该那样做。让那个人通过正常提交更改代码。
您可以做的是在提交期间设置作者。
git checkout master
git merge my_branch
git commit --amend --author="Your name <my.adress@email.com>"
git push origin master
或者直接在提交时设置它。
git commit --author="Your name <my.adress@email.com>" ....
但我认为这不是最好的方法。
编辑:有一个非常聪明的短语不要与框架作斗争。
至少有两种方法可以处理这种情况。
新提交,被git blame
忽略
你不能做的是有一个被git blame
完全忽略的"透明提交"。但是您可以要求git blame
忽略带有git blame -w
的空格更改。在执行代码重新格式化时无需执行任何操作。
改写历史
另一种选择是重写历史记录,以便新历史记录看起来代码在提交时格式正确。请注意,历史记录重写是一项危险的操作,只有在完全了解这样做的后果时才应使用它。
您可以使用 git rebase -i --exec
进行批量重写。