2882 Stimmen

Wie kann ich Git dazu bringen, Änderungen am Dateimodus (chmod) zu ignorieren?

Ich habe ein Projekt, in dem ich den Modus von Dateien mit chmod während der Entwicklung auf 777 gesetzt, was sich aber im Haupt-Repo nicht ändern sollte.

Git greift auf chmod -R 777 . und markiert alle Dateien als geändert. Gibt es eine Möglichkeit, Git dazu zu bringen, Änderungen am Modus zu ignorieren, die an Dateien vorgenommen wurden?

53 Stimmen

Dies ist hilfreich bei der Arbeit mit git unter Windows + Bash unter Ubuntu unter Windows

10 Stimmen

Für alle, die nur die Änderungen der Berechtigungen für einen bestimmten Aufruf von git diff und die daher ihre Git-Konfigurationsdateien nicht ändern wollen: Sie können git diff -G. per Zed's Antwort aquí .

51voto

Tyler Liu Punkte 17503

Sie können sie global konfigurieren:

git config --global core.filemode false

Wenn die obige Vorgehensweise bei Ihnen nicht funktioniert, liegt das möglicherweise daran, dass Ihre lokale Konfiguration die globale Konfiguration überschreibt.

Entfernen Sie Ihre lokale Konfiguration, damit die globale Konfiguration wirksam wird:

git config --unset core.filemode

Alternativ dazu können Sie Ihre lokale Konfiguration auf den richtigen Wert ändern:

git config core.filemode false

26voto

Kishor Vitekar Punkte 537

Wenn Sie Folgendes verwendet haben chmod Befehl bereits dann überprüfen Sie den Unterschied der Datei, Es zeigt vorherige Datei-Modus und aktuelle Datei-Modus wie:

neuer Modus : 755

alter Modus : 644

Setzen des alten Modus aller Dateien mit folgendem Befehl

sudo chmod 644 .

Setzen Sie jetzt core.fileMode in der Konfigurationsdatei entweder per Befehl oder manuell auf false.

git config core.fileMode false

wenden Sie dann den Befehl chmod an, um die Berechtigungen aller Dateien zu ändern, z. B.

sudo chmod 755 .

und setzen Sie core.fileMode wieder auf true.

git config core.fileMode true

Am besten ist es, core.fileMode nicht immer auf false zu setzen.

22voto

Ville Punkte 3790

Durch das Definieren des folgenden Alias (in ~/.gitconfig) können Sie den fileMode pro git-Befehl vorübergehend deaktivieren:

[alias]
nfm = "!f(){ git -c core.fileMode=false $@; };f"

Wenn dieser Alias dem git-Befehl vorangestellt wird, werden die Änderungen im Dateimodus nicht bei Befehlen angezeigt, die sie sonst anzeigen würden. Zum Beispiel:

git nfm status

14voto

Rey0bs Punkte 1148

Wenn Sie filemode in Konfigurationsdateien rekursiv auf false setzen wollen (einschließlich Submodulen) : find -name config | xargs sed -i -e 's/filemode = true/filemode = false/'

6voto

Shashwat Gupta Punkte 4257

Einfache Lösung:

Hier klicken Einfacher Befehl im Projektordner( werden Ihre ursprünglichen Änderungen nicht entfernt) ...wird es nur Änderungen entfernen Das war fertig während Sie die Berechtigung für Projektordner

Befehl ist unten:

git config core.fileMode false

Warum wird diese unnötige Datei geändert? weil Sie die Berechtigungen für den Projektordner geändert haben mit commend sudo chmod -R 777 ./IhrProjektOrdner

Wann werden Sie Änderungen überprüfen, die Sie nicht vorgenommen haben? Sie fanden wie unten während der Verwendung git diff filename

old mode 100644
new mode 100755

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X