Git 上のテキストファイルを改行コードLFに統一する

Windows と Mac で共同開発を行っていると、テキストファイルの改行コードが CRLF、LF で混在することがあります。一括で、LF に変換する方法です。

まず、以下のコマンドでリポジトリ上の CR を検索します。

git grep --cached -I $'\r'

次に、ローカルのファイルを一括で LF に変換します。

find . -name \*.java -type f | xargs -n 10 nkf -Lu --overwrite
find . -name \*.html -type f | xargs -n 10 nkf -Lu --overwrite
find . -name \*.vm -type f | xargs -n 10 nkf -Lu --overwrite
find . -name \*.css -type f | xargs -n 10 nkf -Lu --overwrite
find . -name \*.xreg -type f | xargs -n 10 nkf -Lu --overwrite
find . -name \*.xml -type f | xargs -n 10 nkf -Lu --overwrite
find . -name \*.js -type f | xargs -n 10 nkf -Lu --overwrite
find . -name \*.properties -type f | xargs -n 10 nkf -Lu --overwrite
find . -name \*.psml -type f | xargs -n 10 nkf -Lu --overwrite
find . -name \*.txt -type f | xargs -n 10 nkf -Lu --overwrite
find . -name \*.sql -type f | xargs -n 10 nkf -Lu --overwrite
find . -name \*.php -type f | xargs -n 10 nkf -Lu --overwrite
find . -name \*.dtd -type f | xargs -n 10 nkf -Lu --overwrite
find . -name \*.as -type f | xargs -n 10 nkf -Lu --overwrite
find . -name \*.xsl -type f | xargs -n 10 nkf -Lu --overwrite
find . -name \*.template -type f | xargs -n 10 nkf -Lu --overwrite
find . -name \*.jsp -type f | xargs -n 10 nkf -Lu --overwrite
find . -name \*.default -type f | xargs -n 10 nkf -Lu --overwrite
find . -name \*.md -type f | xargs -n 10 nkf -Lu --overwrite
find . -name \*.cer -type f | xargs -n 10 nkf -Lu --overwrite
find . -name \*.pem -type f | xargs -n 10 nkf -Lu --overwrite
find . -name \*README -type f | xargs -n 10 nkf -Lu --overwrite
find . -name \*LICENSE -type f | xargs -n 10 nkf -Lu --overwrite

リポジトリに Push します。

git add .
git commit -m "Normalize all the line endings"
git push