Je commence juste à regarder dans les crochets de Git, mais je n'arrive pas à les convaincre de courir.
J'ai configuré un référentiel local, il y a donc maintenant un répertoire ".git" dans mon dossier de projet. J'ai ajouté un fichier ".cmd" dans le répertoire C: /path/to/my/project/.git/hooks nommé "pre-commit.cmd". Voici le contenu de ce fichier:
echo "HOOK RUNNING"
echo. 2>C:/path/to/my/project/.git/hooks/EmptyFile.txt
Cela devrait faire écho au texte "CROCHET RUNNING" et créer un fichier texte vide dans ce répertoire. Cependant, si je valide les modifications via mon IDE (NetBeans) ou utilise Git Bash pour valider, aucun des deux ne semble exécuter mon hook de pré-validation car aucun fichier n'est créé.
Je crois comprendre que tout ce que vous avez à faire pour obtenir un hook à exécuter est d’ajouter un exécutable avec le nom du hook (comme je l’ai fait). Est-ce que je fais quelque chose de mal?
Note: Ceci est sur un PC Windows 7.
Pourquoi ne pas nommer votre hook pre-commit
(sans extension)?
EDIT: et ajoutez #!/bin/sh
sur la première ligne ou #!/bin/bash
(suggéré dans les commentaires)
Vous n'avez probablement pas les autorisations nécessaires pour exécuter le fichier pre-commit
Courez dans votre terminal:
chmod +x .git/hooks/pre-commit
Merci à @vaughan pour avoir donné l'idée
Pour moi, aucune des solutions ci-dessus n'a fonctionné. J'ai déplacé le fichier de pré-validation des crochets vers un autre emplacement, le supprimant efficacement.
Cela a fonctionné pour moi: D
dans mon cas où j'ai fait npm install
& supprimé accidentellement .git dossier, npm install pre-commit --save
travaillé