permission - phpstorm git chmod




Wie mache ich Git Änderungen des Dateimodus(chmod) Änderungen? (7)

Ich habe ein Projekt, in dem ich den Modus von Dateien mit chmod zu 777 während des Entwickelns ändern muss, aber das sollte sich im Hauptrepo nicht ändern.

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


Durch Definieren des folgenden Alias ​​(in ~ / .gitconfig) können Sie den Befehl "fileMode per git" einfach vorübergehend deaktivieren:

nfm = "!f(){ git -c core.fileMode=false [email protected]; };f"

Wenn dieser Alias ​​dem Befehl git vorangestellt ist, werden die Änderungen des Dateimodus nicht mit Befehlen angezeigt, die sie sonst anzeigen würden. Beispielsweise:

git nfm status

Hinzufügen zu Greg Hewgill Antwort (mit der core.fileMode Konfigurationsvariablen):

Sie können die --chmod=(-|+)x des git update-index (Low-Level-Version von "git add") verwenden, um die Ausführungsberechtigungen im Index zu ändern, von wo sie bei Verwendung von "git" übernommen würden commit "(und nicht" git commit -a ").


Ob

git config --global core.filemode false

funktioniert nicht für dich, mach es manuell:

cd into yourLovelyProject folder

CD in den .git-Ordner:

cd .git

bearbeite die Konfigurationsdatei:

nano config

ändere wahr zu falsch

[core]
        repositoryformatversion = 0
        filemode = true

->

[core]
        repositoryformatversion = 0
        filemode = false

speichern, beenden, zum übergeordneten Ordner wechseln:

cd ..

reinige den git

git init

du bist fertig!


Sie können es global konfigurieren:

git config --global core.filemode false

Wenn das oben genannte nicht für Sie funktioniert, hat die lokale Konfiguration möglicherweise Vorrang vor der globalen Konfiguration.

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

git config --unset core.filemode

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

git config core.filemode false


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


Wenn Sie bereits den Befehl chmod verwendet haben, überprüfen Sie den Unterschied der Datei. Er zeigt den vorherigen Dateimodus und den aktuellen Dateimodus an, wie zum Beispiel:

neuer Modus: 755

alter Modus: 644

Stellen Sie den alten Modus aller Dateien mit dem Befehl unten ein

sudo chmod 644 .

Setzen Sie nun core.fileMode in der Konfigurationsdatei auf false, entweder mit dem Befehl oder manuell.

git config core.fileMode false

Wenden Sie dann den Befehl chmod an, um die Berechtigungen aller Dateien wie z

sudo chmod 755 .

und setzen Sie core.fileMode erneut auf true.

git config core.fileMode true

Für Best Practices halten Sie core.fileMode nicht immer auf false.


Einfache Lösung:

Drücken Sie diesen einfachen Kommentar im Projektordner ( er wird Ihre ursprünglichen Änderungen nicht entfernen) ... er wird nur die Änderungen entfernen , die während der Änderung der Projektordnerberechtigung vorgenommen wurden

Empfehlung ist unten:

git config core.fileMode false

Warum diese nicht benötigte Datei geändert wird: weil Sie die Berechtigungen für den Projektordner mit commend sudo chmod -R 777 ./yourProjectFolder geändert haben

Wann werden Sie Änderungen überprüfen, was Sie nicht getan haben? Sie haben wie folgt gefunden, während Sie git diff filename verwenden





chmod