Versuchen:
git config core.fileMode false
Von 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).
Mit dem -c
Flag kann diese Option für einmalige Befehle festgelegt werden:
git -c core.fileMode=false diff
Das --global
Flag macht es zum Standardverhalten für den angemeldeten Benutzer.
git config --global core.fileMode false
Änderungen der globalen Einstellung werden nicht auf vorhandene Repositorys angewendet. Zusätzlich git clone
und git init
explizit core.fileMode
auf true
Config im Repo wie in diskutiert Git globalen core.fileMode falsch überschrieben lokal auf Klon
Warnung
core.fileMode
ist nicht die beste Vorgehensweise und sollte sorgfältig angewendet werden. Diese Einstellung deckt nur das ausführbare Bit des Modus und niemals die Lese- / Schreibbits ab. In vielen Fällen denken Sie, dass Sie diese Einstellung benötigen, weil Sie so etwas getan haben chmod -R 777
, um alle Ihre Dateien ausführbar zu machen. In den meisten Projekten werden die meisten Dateien jedoch nicht benötigt und sollten aus Sicherheitsgründen nicht ausführbar sein .
Der richtige Weg, um diese Art von Situation zu lösen, besteht darin, Ordner- und Dateiberechtigungen getrennt zu behandeln.
find . -type d -exec chmod a+rwx {} \; # Make folders traversable and read/write
find . -type f -exec chmod a+rw {} \; # Make files read/write
Wenn Sie dies tun, müssen Sie es nie verwenden core.fileMode
, außer in sehr seltenen Umgebungen.