Wenn Sie die akzeptierte Antwort sehen in:
Aggregieren und Verändern von Javascript in einem git pre-commit hook , du wirst sehen, dass ich ein chmod +x
auf meinem Pre-Commit-Hook machen musste, um es zum Laufen zu bringen.
Warum ist dies nicht standardmäßig von Git ausführbar?
Weil Dateien standardmäßig nicht ausführbar sind; Sie müssen als ausführbar festgelegt werden.
Die Beispieldateien von git init
sind ausführbar. Wenn es in eine Nicht-Beispieldatei kopiert oder umbenannt wird, behält es das x
-Flag der ursprünglichen Datei bei.
Neue Dateien werden mit den aktuellen Standardeinstellungen erstellt. In Ihrem Fall sehen Sie diese Voreinstellungen mit umask
:
Standardmäßig sind neue Dateien nicht u+x
, es sei denn, dies ist explizit festgelegt.
Ich musste einen
chmod +x
auf meinem Pre-Commit-Hook machen, damit es funktioniert
Das Problem ist zu erkennen, dass es überhaupt nicht ausführbar war.
Mit Git 2.15.x / 2.16 (Q1 2018) wird das einfacher.
Siehe committe f805a00 (06. Okt. 2017) von Damien Marié ( mdamien
) .
(Zusammengeführt von Junio C Hamano - gitster
- - in commit 130b512 , 06 Nov. 2017)
%Vor%
run-command
: Hinweis hinzufügen, wenn ein Hook ignoriert wirdWenn ein Hook vorhanden ist, aber die Datei nicht als ausführbar festgelegt ist, wird git dies tun Ignoriere den Haken.
Momentan ist das still, was verwirrend sein kann .Dieses Commit fügt diese Warnung hinzu, um die Situation zu verbessern:
Um den alten Anwendungsfall der Aktivierung / Deaktivierung von Hooks über das ausführbare Flag zu ermöglichen, wird eine neue Einstellung eingeführt:
advice.ignoredHook
.