【Git】コミットしたファイルとサーバ上のファイルが同データのはずなのに差分が出てくる(改行コードの違い)場合の対処法!
2016年5月18日以前作業をした、変更箇所のみを差分納品する案件での出来事。
ブラウザ上のソースをコピーし、そのファイルをもとに作業を行った際に差分が出て困ったので、対処法を備忘録として残しておきます。(バージョン管理はgitで行った)
【原因は?】
Gitの設定によってファイルの改行コードが勝手に変換?されていたことが原因らしい。
設定ファイルの「.gitconfig」(※windows7のデフォルト設定のインストールであればC:\Users\ユーザ名\.gitconfig にファイルがある)を確認すると
1 2 |
[core] autoCRLF = true |
となっている。
この設定によって、
コードをチェックアウト(※注1)すると、LF → CRLFに自動変換される。
ちなみに、trueとその他設定の意味については下記となります。
- ture:
- コミット時にCRLF -> LF
チェックアウト時にLF -> CRLF - input:
- コミット時にのみCRLF -> LFに変換 ※Windowsの場合のみtrueと同じ
- false:
- 変換しない
引用元:http://qiita.com/shuhei/items/2da839de8803cb335f86
解決法として、
autoCRLF = true → autoCRLF = input か false
にする!
【結論】
僕が行った作業の場合、どの選択(input、false)が正しいのかはまだ不明だが、とりあず今後同作業がある際には、自動変換されないようautoCRLF = falseの状態で試してみようと思う。
※注1 ) チェックアウト:ファイルをリポジトリからローカル環境に取り出すこと
参考サイト:
freedomyoichiworld.hatenablog.com/entry/2014/10/30/201807
https://teratail.com/questions/19
http://qiita.com/shuhei/items/2da839de8803cb335f86