Próbować:
git config core.fileMode false
Z git-config (1) :
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).
Za pomocą -c
flagi można ustawić tę opcję dla poleceń jednorazowych:
git -c core.fileMode=false diff
A --global
flaga sprawi, że będzie to domyślne zachowanie dla zalogowanego użytkownika.
git config --global core.fileMode false
Zmiany ustawienia globalnego nie zostaną zastosowane do istniejących repozytoriów. Dodatkowo, git clone
i git init
jawnie ustawić core.fileMode
aby true
w config repo jak omówiono w Git globalny core.fileMode FAŁSZ przesłonięte lokalnie na klonie
Ostrzeżenie
core.fileMode
nie jest najlepszą praktyką i należy ją stosować ostrożnie. To ustawienie obejmuje tylko wykonywalny bit trybu, a nigdy bity do odczytu / zapisu. W wielu przypadkach uważasz, że potrzebujesz tego ustawienia, ponieważ zrobiłeś coś podobnego chmod -R 777
, czyniąc wszystkie swoje pliki wykonywalnymi. Jednak w większości projektów większość plików nie potrzebuje i nie powinna być wykonywalna ze względów bezpieczeństwa .
Właściwym sposobem rozwiązania tego rodzaju sytuacji jest osobne zarządzanie uprawnieniami do folderów i plików za pomocą:
find . -type d -exec chmod a+rwx {} \; # Make folders traversable and read/write
find . -type f -exec chmod a+rw {} \; # Make files read/write
Jeśli to zrobisz, nigdy nie będziesz musiał używać core.fileMode
, z wyjątkiem bardzo rzadkiego środowiska.