Git for Windows で改行コードの扱いを変更する

あるとき、リポジトリからコードを拾ってきて修正して Lint をかけました。

 1:18   ×  Delete "␍"                          prettier/prettier
  2:1    ×  Delete "␍"                          prettier/prettier
  3:3    ×  Delete "␍"                          prettier/prettier
  4:10   ×  Delete "␍"                          prettier/prettier
  5:10   ×  Delete "␍"                          prettier/prettier
  6:3    ×  Delete "␍"                          prettier/prettier
  7:1    ×  Delete "␍"                          prettier/prettier
  8:3    ×  Delete "␍"                          prettier/prettier
  9:12   ×  Delete "␍"                          prettier/prettier
 10:10   ×  Delete "␍"                          prettier/prettier
 11:4    ×  Delete "␍"                          prettier/prettier
 12:108  ×  Delete "␍"                          prettier/prettier
 13:4    ×  Delete "␍"                          prettier/prettier
 14:3    ×  Delete "␍"                          prettier/prettier
 15:1    ×  Delete "␍"                          prettier/prettier

## 略

…… Git for Windows をインストールする際にデフォルトの Checkout Windows-style, commit Unix-style line endings を選択していたために、 \r が付与され、改行ごとに怒られるという鬼のようなLint結果になってしまいました。

これを阻止するため、 Git での改行コードの扱いを変更します。

> git config --global core.autocrlf input

これだけ。設定で操作するパラメータは autocrlf で、このパラメータには以下の3つを指定することが可能です。

設定チェックアウト時コミット時
true\n -> \r\n\r\n -> \n
input変換しない\r\n -> \n
false変換しない変換しない

デフォルトは上述の true になっています。この設定だと、チェックアウト時に \r\n に変換されるため、そのままコードを修正し、(改行コードを \n 指定の)Lintを走らせると冒頭のような結果になります。

Webのフロントエンドですとサーバは基本 Linux 系なので \n ですし、開発環境側(エディタ)も \n 対応していますから、もはや \r\n に変換する必要はほとんどないと思われます。

ということで、チェックアウト時に変換しない input を選択(もちろん、Gitサーバ上にあるコードが \n になっていることが前提)。

これで次からは怒られなくなるはず。

参考

この記事を書いた人

アルム=バンド

フロントエンド・バックエンド・サーバエンジニア。LAMPやNodeからWP、Gulpを使ってejs,Scss,JSのコーディングまで一通り。たまにRasPiで遊んだり、趣味で開発したり。