【Git】SourceTreeでファイルを変更してないのに差分が出る時の対処法

Git

ソースコードを更新した覚えが全くないのに差分が検知されてしまうことがありました。
この時、SourceTree上で対象ファイルを見ても差分の表示はない状態です。(画像赤枠箇所)

これ、どうやらパーミッションが変更されたことによる差分を検知しているようです。

試しに差分として上がってきてしまったファイルのdiffをコマンドライン上で確認すると…

# git diff 比較ブランチ名 ファイル名
old mode 100644
new mode 100755

上記のようにパーミッションの変更が検知されています。

そこで、パーミッションの変更を無視する場合は以下のコマンドを実行することで回避できます。

# git config core.filemode false

そもそも、なぜ身に覚えがない変更があったのか気になって調べたところ、
LinuxとWindowsではファイルのパーミッションの扱いが異なるようで、
Linuxで作成したファイル(0755)をWindowsで差分を見るとパーミッションが0644に変わっているということが起きたりするようです。

【Git】ファイルパーミッションの変更(chmod)を無視する方法 - Qiita
Linux と Windows ではファイルのパーミッションの扱いが異なるので、Linux で作成したスクリプトファイル(パーミッション:0755)を、Windows でgit diffしたとき…
タイトルとURLをコピーしました