LoginSignup
6
1

More than 1 year has passed since last update.

リモートリポジトリ上で変更していないファイルに差分が出てしまう場合の対処

Posted at

結論

エディタの設定によって改行コード・ファイル末尾の改行などが勝手に置換されてしまっていることが原因

パターン①

改行コードの違いが差分として検知されてしまっているパターン
キャプチャ.PNG

前提知識

MacOS/Linuxの改行コード:LF
Windowsの改行コード:CR+LF

事例

プロジェクトメンバの使用している端末が異なることによって発生。
今回は他メンバがMacで自分がWindows。

bitbucket上のコードは改行コードがすべてLFだったが、
git cloneしてきたコードの改行コードを保存時にCR+LFに変換されていたため差分が出た。

エディタ(VSCode)の設定

core.autocrlfの項目を編集することで、任意のタイミングで改行コードの変換を行うことができる。
今回の事例ではbitbucketにpushするときにLFになっていればいいのでtrue/inputのどちらかにすればいいと考えた。

core.autocrlfの設定 チェックアウト時 コミット時
true LF -> CRLF CRLF -> LF
input 変換しない CRLF -> LF
false 変換しない 変換しない

core.autocrlの設定方法

// 今の設定値の確認
git config core.autocrlf //false

// inputに設定する場合
git config --global core.autocrlf input

パターン②

ファイル末尾の空行有無が差分として検知されてしまっているパターン(何も差分がないように見える)
キャプチャ.PNG

前提知識

ファイルの末尾は改行で終わらせるべきである。

参考:

エディタ(VSCode)の設定

settings.jsonに下記を追記することで、自動的に改行を挿入してくれる。

 "files.trimTrailingWhitespace": true, // ファイル保存時に末尾の空白をトリミングする
 "files.trimFinalNewlines": true, // ファイル保存時に最終行以降をトリミングする 
 "files.insertFinalNewline": true, // ファイル保存時に末尾に改行を挿入する
6
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
1