我们有一个庞大而古老的代码库,需要大量的清理工作。我们一直都有编码标准,每个人都一直试图遵循它们,但是它们并没有被执行,所以随着时间的推移,很多违规行为已经蔓延开来。其中许多只是空白问题,例如使用制表符而不是空格或空格不应该有任何或应该是空位。我们将开始积极执行我们的编码标准,以确保更多的违规行为不会蔓延,但仅仅在变化时以自动方式强制执行它们是很困难的,所以清理这些旧文件会很好。git:改变造型(空白)而不改变所有权/责怪?
有些工具可以自动解决这些问题,但是如果我这样做,那么责备就会让我看到这些线的所有者,实际上我可能永远都看不到它们。我知道有一种设置可以忽略空白变化,但我不能让每个人都以同样的方式使用责任,包括其他视觉工具和gitstats之类的东西。在一个理想的世界里,会有一些方法来重写历史,看起来没有引入违规,没有掩盖谁介绍了实际的代码,但我找不到这样的事情。
重写历史记录有点尴尬 - 一旦你改变了提交,其他人将不得不提取这些改变。不属于理想的工作流程。您可能想要考虑使用挂钩来强制执行编码标准。您可以使用更新挂钩在推送到中央仓库时执行最终实施,并且可以为开发人员提供预先提交挂钩以对它们执行相同的验证,并且如果安全的话可以自动修复。 (如果你想解决已经存在的问题,我只需要做一次提交 - 不需要经历重写整个历史的头痛问题。) – Cascabel 2010-11-06 08:29:45
可能的重复[Git commit不覆盖原作者git责备](http://stackoverflow.com/questions/3945382/git-commit-that-doesnt-override-original-authors-in-git-blame) – 2010-11-06 08:36:08
我不认为这是完全重复的问题。在我的问题中,我特别指出,责怪改变旗帜是不够的,对这个问题的接受答案就是这样。 – 2010-11-07 06:54:55