我与其他一些开发人员合作开展项目。并非所有人都使用相同的IDE。最近我意识到代码的某些部分缩进了标签,有些则带有空格。当使用tab = 4空格来显示代码时,一切看起来都不错,但是其他设置会变得非常混乱。
我们使用git作为VCS。 有没有办法重新格式化存储库中的整个代码,提交这些更改并以某种方式保留“责备信息”?
答案 0 :(得分:4)
不,如果没有重写历史,这是不可能的。
最容易和最开发人员友好的解决方案(虽然不会保留责备信息)是在一次提交中解决所有空白问题,然后配置git以拒绝提交添加混合空格的提交。
如果重写历史对您来说不是问题(例如,因为您可以要求所有开发人员丢弃其本地分支并获取重写的分支),您可以使用git filter-branch
来修复所有提交中的空白。这不会是新提交,因此确保git blame
在更改后显示正确的信息。
答案 1 :(得分:3)
您可以编写自己的脚本,用所需数量的空格替换标签(在您的情况下为4),并将其放在.git/hooks/pre-commit
中。
答案 2 :(得分:0)
一个简单的bash脚本可以将每个标签替换为4个空格,但是你必须在每次提交之前使用它...
或者,查看不同ide的设置以使用tab而不是space。我知道emacs可以做到这一点。 ;)