Git is not ignoring file mode changes (chmod), why?
Before start I should say I already looked this post and this one as well but for some reason the solutions provided there aren't working for me. My repository is under ~/sources
so every command was run from that path. This is what I have done:
Change the filemode to false:
$ git config --global core.filemode false
Check global configuration:
$ git config --list
...
core.filemode=false
core.repositoryformatversion=0
core.bare=false
core.logallrefupdates=true
...
Reinitialize the repository:
$ git init
Reinitialized existing Git repository in /home/rperez/sources/.git/
Check what needs to be added|committed:
$ git status
And I get a list having all the files from the repository.
I am using:
$ git --version
git version 2.9.3
UPDATE: added git diff for two different files
$ git status
...
modified: testing/test-valid-swasset-update.php
...
Untracked files:
(use "git add <file>..." to include in what will be committed)
library/mpdf60/ttfontdata/dejavusanscondensedI.GDEFdata.php
...
git diff
output from the files above:
$ git diff testing/test-valid-swasset-update.php
diff --git a/testing/test-valid-swasset-update.php b/testing/test-valid-swasset-update.php
old mode 100755
new mode 100644
What I am missing here?
Local config overrides global config settings
The diff output in the question indicates that the local git config has filemode
set to true. This is probably expected behavior since the default config created for a repo defines this:
-> git init
Initialized empty Git repository in /tmp/foo/.git/
-> cat .git/config
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
Changing the global config for filemode
does not affect this, and so in fact git config --global core.filemode false
doesn't do anything because this is always overridden locally.
Therefore, to change the filemode for this repo, change the local config:
$ git config core.filemode false
$ git config core.filemode
false
Given this question/answer there's a possibility it is supposed to work, although it didn't for me.
You can verify what the local setting is with this: git config --local --list
...and set a local value like this:
git config --local core.filemode false
链接地址: http://www.djcxy.com/p/30032.html上一篇: [python]:被super()困惑