2012-01-02 8 views
7

私は大規模なコードベースを持っています。ほとんどすべての単一ファイルが正しく整列されておらず、変数やメソッド間の間隔が狭かったり、一般的に醜いコードです。gitでレガシープロジェクトのクリーンアップコミットを管理する良い方法はありますか?

私はそれを使って作業していますが、インデントのようなものを修正すると、コミットの履歴がかなり醜いものになります。私はラインが1つのスペースオフになっている小さなインデントの問題の話ではない

、私は私の歴史を維持しながら、このようなコードをクリーンアップするための良い方法は何

class Xyz 
def foo 
end 

    def bar 
    @something 
end 
    end 

ような何かについて話しています関連性?私はすべてを一度に自動整列し、1つの大きなコミットを行うべきですか?

答えて

8

これをすべて別の(ローカル)ブランチに修正します。私は準備ができていたら、私はこれを「巨大なコミット」になるだろう。この方法が変更されますが、私は(少なくとも、完全ではない)任意の自動フォーマッタを信用しないだろう「スカッシュマージ」

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

別のブランチでクリーンアップを行い、完了したらメインブランチにマージすることができます。

これはあなたにクリーンアップの時間を与え、あなたは履歴を編集する必要はありません(私は決してしません)

関連する問題