githubで更新してないファイルが差分として表示される

未分類


先に原因としては

  • パーミッション
  • 改行コード

になります。こちらを合わせる作業になります。

どうやら権限の関係で表示される様子

理由はパーミッションらしく、ほんまかいなとdiffで確認した所

git diff

たしかに権限周りでdiffが発生している。
こんな感じ。

old mode 100755
new mode 100644

とりあえず、該当フォルダを一括で755に変更、git普通にパーミッションも共有されてたのね。

下記を実行すると差分がきえるがどうやら問題もあるとの指摘が・・・

git config core.filemode false

色々調査したがどうやら、windowsとmacでファイルのやり取りでよく出る現象の様子

https://belltree.life/git-file-system/

その後 git diffで差分を確認したと所下記が沢山表示されるようになりました・・・

The file will have its original line endings in your working directory

どうやら

  • Mac/LinuxにインストールされているGit→CRLFをLFに自動変換
  • WindowsにインストールされているGit→LFをCRLFに自動変換

となっているようです。

サーバー環境がlinuxの場合、本番環境に合わせる必要がありますので、
vs codeのファイル→ユーザー設定→設定から改行コードを\nにしてあげればOKです。

また自動変換も行われると困るので自動変換もOFFにしましょう。

git config --global core.autocrlf false

本当にいらない差分がある場合は
git checkoutでブランチを切り替える事ができるのですが、「.」を入れる事で現在のブランチに変更と言う事で差分を消す事ができます。

git checkout .