Git でファイルパーミッションの変更(chmod)を無視する - git config core.filemode false

Git

さて変更を反映するか。

$ git pull
remote: Counting objects: 74, done.
remote: Compressing objects: 100% (37/37), done.
remote: Total 60 (delta 26), reused 55 (delta 21)
Unpacking objects: 100% (60/60), done.
From xxxxxxxxxx
   xxxxxx..xxxxxx  master     -> origin/master
Updating xxxxxx..xxxxxx
error: Your local changes to 'xxxxxxxxxx' would be overwritten by merge.  Aborting.
Please, commit your changes or stash them before you can merge.

む、サーバー上で作業はしてないはずだが。 git status みてみる。

$ git st
# On branch master
# Your branch is behind 'origin/master' by 4 commits, and can be fast-forwarded.
#
# Changed but not updated:
#   (use "git add <file>..." to update what will be committed)
#   (use "git checkout -- <file>..." to discard changes in working directory)
#
#	modified:   .gitignore
#	modified:   xxxxxxxxxx

むむ、なぜだ。 git diff してみる。

$ git diff
diff --git a/.gitignore b/.gitignore
old mode 100644
new mode 100755
diff --git a/xxxxxxxxxx b/xxxxxxxxxx
old mode 100644
new mode 100755

どうやら、ファイルパーミッションの変更まで検知してしまっているようだ。

では、ファイルモードの変更を感知しないようにするには…。
ググったら以下の質問(StackOverflow)が見つかった。

結果は、これでパーミッション変更を無視できるらしい。

$ git config core.filemode false

ちゃんと core.filemode = false に設定できたか確認するには以下のコマンドで。

$ git config -l | grep filemode

これ読んで勉強しましょうね。

入門git - Travis Swivegood

Git