23

I have some git projects in a linux server.

i use Mac and linux to do my programming. the problem is that the mac filesystem's permissions doesn't really work well like in linux so all the files seems to be on umask 0755. so whenever i pull my code on my mac, git status shows that all my files are changed and when i use git diff it shows that the only change is in the umask. how can i tell git not to store and check for umask changes ?

thanks!

ufk
  • 901
  • 6
  • 23
  • 38

2 Answers2

32

Set the core.fileMode configuration property to false. You can do this easily with this command:

git config core.fileMode false
Patches
  • 16,136
  • 3
  • 55
  • 61
  • Is this a per-repository setting or is it possible to make this work globally? – acme Jan 18 '12 at 15:24
  • 2
    @acme: Like all git settings, you can set it per-repository, per user, or systemwide, by passing no extra switch, `--global`, or `--system`, respectively. See `git help config` for details. – Patches Jan 20 '12 at 04:06
  • Thanks! But setting it globally does not automatically add this setting to new repositories, it's just a setting on my local machine? – acme Mar 01 '12 at 11:22
  • @acme: Yup, setting an option with `--global` affects all operations on any repository accessed with your user account locally. It doesn't affect anyone else. To set it for all users of a particular repository you'd have to toggle the per-repository setting on the server everyone pushes to. – Patches Mar 02 '12 at 05:30
1

I have a small shell script to toggle this

cat ~/bin/git-ignore-chmod-toggle

#!/bin/bash
# Copyright 2015 Alexx Roche, MIT license.
# based on http://superuser.com/a/261076

gitCHMODstate=$(git config --get core.fileMode)

# toggle with git config core.fileMode true 

if [ $gitCHMODstate == 'true' ];then
    echo "git now ignores file mode (chmod)"
    git config core.fileMode false
else
    echo "git not looks for files modes changed with chmod"
    git config core.fileMode true
fi

With this I can toggle git, check for other changes and then put back on quickly.

Alexx Roche
  • 820
  • 7
  • 15