リモートリポジトリ上で変更していないファイルに差分が出てしまう場合の対処
結論
エディタの設定によって改行コード・ファイル末尾の改行などが勝手に置換されてしまっていることが原因
パターン①
前提知識
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
パターン②
ファイル末尾の空行有無が差分として検知されてしまっているパターン(何も差分がないように見える)
前提知識
ファイルの末尾は改行で終わらせるべきである。
参考:
エディタ(VSCode)の設定
settings.jsonに下記を追記することで、自動的に改行を挿入してくれる。
"files.trimTrailingWhitespace": true, // ファイル保存時に末尾の空白をトリミングする
"files.trimFinalNewlines": true, // ファイル保存時に最終行以降をトリミングする
"files.insertFinalNewline": true, // ファイル保存時に末尾に改行を挿入する
Author And Source
この問題について(リモートリポジトリ上で変更していないファイルに差分が出てしまう場合の対処), 我々は、より多くの情報をここで見つけました https://qiita.com/kondo0602/items/3454b270c89d0ab1f471著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .