看起来 Git 忽略了 ~/.gitconfig
$ git config --global core.filemode false
$ git config -l
core.filemode=false
core.filemode=true
现在有2个关于 core.filemode
的条目,而git仍然没有忽略文件模式的更改。
$ touch modetest
$ git add .
$ git commit -m test1
[master (root-commit) 320cfe4] test1
0 files changed, 0 insertions(+), 0 deletions(-)
create mode 100644 modetest
$ chmod +x modetest
$ git diff
diff --git a/modetest b/modetest
old mode 100644
new mode 100755
根据torek的答案,我将这一行添加到我的.bash_profile
中。
[ -d .git ] && git config core.filemode false
NO_TRUSTABLE_FILEMODE
。如果未定义,则在运行时进行测试,通过对.git/config
进行chmod,最终用.git/config.lock
替换它,并清除其临时chmod。临时版本设置了u+x位;如果在chmod之后它保持设置,则git认为x位很重要。 - torekgit config --global core.fileMode false
没有用。Git 文件模式问题我每天都会遇到。每次创建新项目时都必须配置这个东西。 - bronze man.git/config
文件权限为-x,则将其更改为+ x,如果它是+x,则更改为-x。然后检查更改是否实际生效。如果是,则新替换的.git/config.lock
文件获取filemode = true
行。如果没有,则新替换的.git/config.lock
文件获取filemode = false
行。配置完成后,将.git/config.log
重命名为.git/config
并设置新的文件模式设置。 - torek