Das Executable-Bit wird für Pfade in einem Repository mit nicht erkannt (und daher nicht gesetzt). core.filemode auf “false” gesetzt, obwohl die Benutzer möglicherweise Dateien als ausführbar hinzufügen möchten, um die Kompatibilität mit anderen Benutzern zu gewährleisten, die tun verfügen über core.filemode
Funktionalität.
Beispielsweise möchten Windows-Benutzer, die Shell-Skripte hinzufügen, diese als ausführbar hinzufügen, um die Kompatibilität mit Benutzern von Nicht-Windows zu gewährleisten.
Obwohl dies mit einem Installationsbefehl (git update-index --add --chmod=+x foo), Unterrichten der git-add Mit dem Befehl können Benutzer eine ausführbare Datei mit einem Befehl festlegen, mit dem sie bereits vertraut sind.
Bohemien
Wenn die Dateien bereits das +x-Flag gesetzt haben, git update-index --chmod=+x tut nichts und git denkt, dass es nichts zu übergeben gibt, obwohl das Flag nicht im Repo gespeichert wird.
Sie müssen zuerst das Flag entfernen, den Befehl git ausführen und dann das Flag zurücksetzen:
dann git sieht eine Änderung und erlaubt Ihnen, die Änderung zu übernehmen.
Erforderliche Git-Konfiguration für den Committer (Quelle: Nabis Antwort):
git config core.filemode false
Erforderliche Git-Konfiguration für den Kloner:
git config --global core.autocrlf input
… schrecklich! ist das immer noch so
– HerrR
27. Mai 2021 um 22:08 Uhr
@MrR Ja, immer noch der Fall. Ich glaube, das ist der schnellste Weg (am wenigsten git fu), um es zu beheben.
– Böhmisch ♦
27. Mai 2021 um 22:10 Uhr
Ich habe das gemacht, Git sieht die Änderung, ich habe Commit gemacht und ins Repo gepusht, und wenn ich die Datei woanders verwende, wird die Erlaubnis verweigert … irgendeine Idee, was falsch sein kann? Ich lade die Datei aus dem Repo herunter und überprüfe die Berechtigungen und sie hat keine ausführbare Datei …
– mrRobot
9. Januar um 1:46
@mrRobot-Check git config: core.filemode sollte falsch sein. Wenn nicht, git config core.filemode false (Gutschrift Nabis Antwort)
– Böhmisch ♦
9. Januar um 5:14
@Bohemian vielleicht hat mir das geholfen: git config --global core.autocrlf input
– mrRobot
9. Januar um 15:20 Uhr
Der Hinweis ist zunächst, dass Sie sich sicher sein müssen filemode einstellen false in der config-Git-Datei oder verwenden Sie diesen Befehl:
git config core.filemode false
und dann können Sie mit diesem Befehl die 0777-Berechtigung festlegen:
git update-index --chmod=+x foo.sh
ich habe keine touch und chmod Befehl in meiner cmd.exe und git update-index --chmod=+x foo.sh funktioniert bei mir nicht.
Ich löse es schließlich durch Einstellung skip-worktree bisschen:
Mit git 2.9.x/2.10 (Q3 2016),
git add --chmod=+x
ist tatsächlich möglich. Siehe meine Antwort unten, Anerkennung an Edward Thomson.– VonC
9. Juli 2016 um 19:18 Uhr
Es würde sich lohnen, die ausgewählte Antwort auf die zu aktualisieren
git add --chmod=+x
Ausführung– Mikemaccana
17. September 2018 um 10:54 Uhr