为了清理我们的代码,我们想使用 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>" ....
但我认为那不是最好的方法。
编辑:有一个非常聪明的短语Don't fight the framework。
至少有两种方法可以处理这种情况。
git blame
你不能做的是有一个完全被git blame
. 但是您可以要求git blame
忽略空格更改git blame -w
。在您重新格式化代码时无事可做。
另一种选择是重写历史记录,这样新的历史记录看起来就像代码在提交时已正确格式化。请注意,历史重写是一项危险的操作,只有在您完全了解这样做的后果时才应该使用它。
您可以使用git rebase -i --exec
.