Windows で Git でチェックアウトしたテキストファイルの改行コードが LF になっている件

新しいPC環境を整えている。Windows ではテキストファイルを CRLF で使っているはずなのに、LF になっているせいで、CRLF に変換すると Git 上で全行修正されたように見えてしまうという問題が発生。

解決

%userprofile%.gitconfig に以下を追加。

[core]
    autocrlf = true

これは何?

core.autocrlf は git での改行コード - Qiita によると、『コミット時に CRLF -> LF。チェックアウト時に LF -> CRLF』 とのこと。

前のPCではどうなってた?

%userprofile%.gitconfig には autocrlf が無かったけど、Tortoise Git > Settings > Git > Auto CrLf convert > AutoCrlf を見たらチェックが入っていた。

Further reading

Git - Git の設定 の core.autocrlf の項を参照。まとめるとこう。

  • autocrlf = true で「コミット時に CRLF to LF」かつ「チェックアウト時に LF to CRLF」
  • autocrlf = input で「コミット時に CRLF to LF」
  • 上記以外の場合、何もしない

用途に応じてお好きなものを。