Question:I have a project in which I have to change the mode of files with
chmodto 777 while developing, but which should not change in the main repo.
Git picks up on
chmod -R 777 .and marks all files as changed. Is there a way to make Git ignore mode changes that have been made to files?
core.fileMode Tells Git if the executable bit of files in the working tree is to be honored. Some filesystems lose the executable bit when a file that is marked as executable is checked out, or checks out a non-executable file with executable bit on. git-clone(1) or git-init(1) probe the filesystem to see if it handles the executable bit correctly and this variable is automatically set as necessary. A repository, however, may be on a filesystem that handles the filemode correctly, and this variable is set to true when created, but later may be made accessible from another environment that loses the filemode (e.g. exporting ext4 via CIFS mount, visiting a Cygwin created repository with Git for Windows or Eclipse). In such a case it may be necessary to set this variable to false. See git-update-index(1). The default is true (when core.filemode is not specified in the config file).
-cflag can be used to set this option for one-off commands:
-c core.fileMode=falsecan be bothersome and so you can set this flag for all git repos or just for one git repo:
git initexplicitly set
truein the repo config as discussed in Git global core.fileMode false overridden locally on clone
core.fileModeis not the best practice and should be used carefully. This setting only covers the executable bit of mode and never the read/write bits. In many cases you think you need this setting because you did something like
chmod -R 777, making all your files executable. But in most projects most files don’t need and should not be executable for security reasons.
The proper way to solve this kind of situation is to handle folder and file permission separately, with something like:
core.fileMode, except in very rare environment.
If you have better answer, please add a comment about this, thank you!