😸

【GitHub】改行コードの自動変換設定

2023/07/20に公開

Windows系とUNIX系とMac (OS 9以前)は改行コードが異なるため、それぞれに合った改行コードを使う必要がある。
gitでaddをしたところ警告。

$ git add .
warning: in the working copy of 'src/main/java/com/example/demo/controller/UserDetailController.java', LF will be replaced by CRLF the next time Git touches it

当該ファイルはLFだったので次触る時はCRLFに変換するよということ。
自動変換するかの設定は下記コマンドにより設定。

git config --global core.autocrlf false

変換の設定は3種類。

設定 チェックアウト コミット
true LF > CRLF CRLF > LF
false 変換しない 変換しない
input 変換しない CRLF > LF

Git for Windowsではインストール時の初期設定で項目があるようだがデフォルトはtrueになっているようだ。
Windowsはtrueが自動変換で便利そうだが調べたところtrueでも問題がでてくる場合があるようなので、今回はinputに設定。

また、オプションの--globalについても触れておく。
こちらも3種類あり、設定範囲を示す。

設定 スコープ 設定ファイル(Windows) 優先度
system 全ユーザー C:\Program Files\Git\etc\gitconfig
※人によって変わるようですが私はここでした。
3
global ログインユーザー C:\Users/username.gitconfig 2
local 各リポジトリ .git\config 1

基本的にはglobalを設定しておけばよさそうです。いろいろユーザーを使い分けるならsystem、特定のリポジトリだけ変えたい場合はlocalを設定という使い方でしょうか。
これらの設定の確認コマンド

git config <option> -l

optionに--systemなどスコープをいれてあげると各スコープの設定だけがでてくるので見やすいですね。

Discussion