Points de base
Lors de l'exécution d'une commande spécifique, GIT recherche le répertoire .git/hooks
pour les scripts de crochet appropriés et, s'il est trouvé, les exécute. Vous y trouverez un petit ensemble d'échantillons de scripts (vous pouvez les activer en les renommant pour supprimer le préfixe .sample
et définir leurs bits d'exécution), et vous pouvez trouver une liste complète de crochets dans la page githooks(5)
man. Cet article recommande d'utiliser certains crochets pour simplifier le développement et améliorer l'efficacité.
Vérification du style de code
La soumission de code avec des erreurs de syntaxe n'est pas recommandée. Si les vérifications du style de code peuvent être effectuées automatiquement pendant le processus de validation, cela améliorera considérablement la qualité du code. Si vous exécutez un style de code, vérifiez manuellement avant chaque engagement, l'automatisation empêche l'oublier occasionnel. Le code de shell suivant peut être enregistré comme .git/hooks/pre-commit
(si le code de crochet pre-commit
existe déjà, il peut être annexé) afin que la vérification automatique soit déclenchée sur chaque engagement:
#!/bin/bash git diff --cached --name-status --diff-filter=ACMR | while read STATUS FILE; do if [[ "$FILE" =~ ^.+(php|inc)$ ]]; then php -l "$FILE" 1>/dev/null if [[ $? -ne 0 ]]; then echo "Aborting commit due to files with syntax errors" >&2 exit 1 fi fi done
git diff
Signaler quels modifications se sont produites entre les commits, les options ci-dessus ne renvoient que les fichiers qui ont été ajoutés (a), copiés (C), modifiés (M) ou renommés (R) dans le commit temporaire. Les fichiers avec .php
ou .inc
extensions seront utilisés par la cible pour les vérifications du style de code, et une défaillance du chèque entraînera la sortie du script avec un code de retour non nul, abandonnant l'engagement lui-même.
Soumettre la vérification orthographique du message
La soumission professionnelle est cruciale. Utilisez Git Hook pour vérifier automatiquement l'orthographe des messages soumis pour éviter les erreurs d'orthographe maladroites. Le code suivant peut être enregistré comme .git/hooks/post-commit
(ou appelez); il appelle Aspell et publie une liste de mots suspects. S'il y a une erreur, vous pouvez corriger immédiatement le message de validation en exécutant git commit --amend
.
#!/bin/bash ASPELL=$(which aspell) if [[ $? -ne 0 ]]; then echo "Aspell not installed – unable to check spelling" >&2 exit fi AWK=$(which awk) if [[ $? -ne 0 ]]; then echo "Awk not installed – unable to filter spelling errors" >&2 exit fi # ... (rest of the spell-check code)
Vous pouvez également compiler un dictionnaire supplémentaire (qui peut être déclenché par le crochet post-checkout
) en utilisant l'identifiant extrait du code source du projet et le transmettre à Aspell avec --extra-dicts
pour réduire le nombre de faux positifs.
Vérifier les spécifications du code
Vous pouvez utiliser Git Hook pour vérifier automatiquement que votre code est conforme aux spécifications de code que vous avez adoptées. Le code suivant peut être utilisé comme un post-commit
Hook (.git/hooks/post-commit
) pour vérifier automatiquement les conflits de format.
#!/bin/bash git diff --cached --name-status --diff-filter=ACMR | while read STATUS FILE; do if [[ "$FILE" =~ ^.+(php|inc)$ ]]; then php -l "$FILE" 1>/dev/null if [[ $? -ne 0 ]]; then echo "Aborting commit due to files with syntax errors" >&2 exit 1 fi fi done
Composer de course d'origine
Vous pouvez utiliser Git Hook pour exécuter automatiquement le compositeur pendant le déploiement. Le code suivant peut être placé dans le fichier .git/hooks/post-receive
du référentiel distant pour le crochet post-receive
, qui exécutera automatiquement le compositeur.
#!/bin/bash ASPELL=$(which aspell) if [[ $? -ne 0 ]]; then echo "Aspell not installed – unable to check spelling" >&2 exit fi AWK=$(which awk) if [[ $? -ne 0 ]]; then echo "Awk not installed – unable to filter spelling errors" >&2 exit fi # ... (rest of the spell-check code)
Conclusion
Cet article partage certains crochets GIT qui, espérons-le, simplifient votre processus de développement d'applications et améliore l'efficacité.
Git Hooks FAQ
(La section FAQ est omise ici car l'article est trop long et ne correspond pas à l'objectif pseudo-original. Il peut être conservé ou supprimé au besoin.)
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!