概要
git add をしたら
$ git add .
warning: CRLF will be replaced by LF in public//vendor/hoge.js.
The file will have its original line endings in your working directory.
と言われる。
元CRLFのファイルをgitにコミットするとLinuxにデプロイしたときに
diffが永遠に出続ける謎の呪いにかかって解けなくて詰むことがある。
これを防ぐために事前に改行コードをLFにしてからコミットしましょう。
nkfをインストール
改行コード置換なら、nkfがいいよとみんなが言ってる。
Macにはデフォでnkfが入っていない。
なのでnkfをMacに入れることにする。
$ brew update
$ brew install nkf
特定のディレクトリ以下の改行コードをまるっと置換
./public/vendor配下のファイルを全部LFにする。
$ find ./public/vendor -type f \( -name "*.js" -o -name "*.css" -o -name "*.md" -o -name "*.txt" -o -name "*.json" -o -name "*.scss" -o -name "*.less" -o -name "*.html" -o -name "*.svg" -o -name "*.php" \) | xargs nkf --overwrite -Lu
これで世界に平和が訪れます。
2018/01/15修正
find ./public/vendor -type f
だとバイナリファイルも一緒に処理してしまってヤバいことになることが分かったので、拡張子をちゃんと指定してやることにしました。
find ./public/vendor -type f
は世界に平和ではなく災いが訪れます。
良い子のみんな、気をつけて。