Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

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!

share|improve this question
1  
I'm quite sure OS X supports Unix-style permissions... – grawity Mar 22 '11 at 22:15
1  
umask and permissions aren't the same thing. Are you sure you really know what you're doing here? – Marnen Laibow-Koser Mar 22 '14 at 15:22
up vote 26 down vote accepted

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

git config core.fileMode false
share|improve this answer
1  
thanks a lot! :) – ufk Mar 22 '11 at 23:25
    
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 4: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 1 '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 2 '12 at 5:30

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.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.