Git の設定 core.autocrlf を Windows で true にしたとき、改行コードはどのように扱われますか?
1〜4キーで選択、Enterで回答できます
解説
正解は「コミット時に LF へ変換されて記録され、チェックアウト時に CRLF へ戻されます」です。core.autocrlf=true は、リポジトリの中身を LF に統一しつつ、Windows の作業ディレクトリでは CRLF を使うための設定です。LF と CRLF の違い改行コードとは行の終わりを表す制御文字のことです。LF(\n)は Linux や macOS で、CRLF(\r\n)は Windows で主に使われます。見た目が同じテキストでも改行コードが違えばバイト列が変わるため、Git は「ファイル全行が書き換わった」と判定してしまいます。core.autocrlf の値ごとの挙動true:コミット時に CRLF→LF、チェックアウト時に LF→CRLF(Windows 向け)input:コミット時のみ CRLF→LF(macOS / Linux 向け)false:変換を一切しない「コミット・チェックアウトともに CRLF のまま記録され、変換は行われません」は false の挙動です。「コミット時に CRLF のまま記録され、チェックアウト時のみ LF へ変換されます」は変換の向きが逆になっています。「改行コードの変換は行われず、差分が出たときに警告メッセージが表示されるだけです」は、変換で情報が失われそうなときに警告する core.safecrlf と混同した説明です。個人設定なのでチームには効かないcore.autocrlf は各自のマシンごとの設定で、チーム全員に強制できません。設定漏れのメンバーが一人いるだけで CRLF が混入します。リポジトリに .gitattributes を置けば設定を共有できます。# テキストと判定したファイルは LF で記録する * text=auto eol=lf # シェルスクリプトは常に LF(CRLF だと実行時にエラーになる) *.sh text eol=lf参考gitattributes Documentationgit-config Documentation