在遗留项目的git中管理清理提交的好方法是什么?

时间:2012-01-02 09:46:02

标签: git code-formatting legacy git-commit

我有一个很大的代码库,几乎每个文件都没有正确对齐,变量或方法之间的间距差,或者只是丑陋的代码。

我希望在使用它时能够做得更好,但修复缩进等内容会使提交历史变得非常难看。

我不是在谈论一个小的缩进问题,其中一行是一个空格,我正在谈论像

这样的东西
 class Xyz
def foo
end

   def bar
  @something
end
   end

在保持历史相关性的同时清理这样的代码的好方法是什么?我应该立即自动对齐所有内容并做一次大的提交吗?

2 个答案:

答案 0 :(得分:9)

我会在一个单独的(本地)分支中修复所有这些。一旦我准备好了,我会做一个“壁球合并”

git checkout -b cleanup develop
# Do some cleanup, do some commits and so on
git checkout develop
git merge --squash cleanup 
git commit -m "My Cleanup"
git branch -D cleanup

通过这种方式,我会得到一个“巨大的提交”,但我不相信任何自动格式化程序(至少不完全),我不会在某一天完成它,或者完全没有任何提交,直到合并

答案 1 :(得分:1)

您可以在单独的分支中进行清理,并在完成后将其合并回主分支。

这为您提供了清理时间,您无需编辑历史记录(我从未这样做过)