2017-02-27 1 views
0

Quelle est la meilleure façon de prévoir que certains des hooks git changent le fichier dans le projet quand je fais la validation avec le message spécifié? Par exemple, quand je fais $git commit -m "MODIFY" je veux modifier le script de mon fichier d'une certaine manière. La modification du fichier n'est pas un problème. Le problème est comment faire git hook pour reconnaître un message spécifique comme déclencheur de modification.Modifier le fichier dans le projet lorsque commit git avec le message spécifié

+0

est le fichier que vous souhaitez modifier pisté par git? Je pense que cela pourrait ou ne devrait être fait que si le fichier * n'est pas * suivi par git. –

+0

@AleksandarDimitrov Il doit être suivi ... –

+0

Y a-t-il une variable dont le message de validation de magasin temporaire? Le script du hook de pré-commit s'exécute avant que la validation ne soit faite, donc le message devrait exister quelque part –

Répondre

0

Vous pouvez utiliser le crochet post-commit.

https://git-scm.com/book/gr/v2/Customizing-Git-Git-Hooks

Après l'ensemble du processus de validation est terminée, le crochet post-commit fonctionne. Il ne prend aucun paramètre, mais vous pouvez facilement obtenir la dernière validation en exécutant git log -1 HEAD. Généralement, ce script est utilisé pour la notification ou quelque chose de similaire.

Vous trouverez ci-dessous un exemple qui peut être placé dans .git/hooks/post-commit. Et assurez-vous d'en faire un fichier exécutable

#!/bin/bash 
echo Running post-commit hook 
git log -1 --pretty=oneline HEAD | grep "MODIFY" && touch somefile.txt 

Vous pouvez chercher le dernier message de commit via log -1 HEAD & passe à travers grep pour correspondre à un modèle

+0

Dans le dossier hooks je ne vois que ces fichiers: 'applypatch-msg.sample pre-applypatch.sample pre-push.sample commit-msg.sample pre-commit.sample pre-rebase.sample post-update.sample prepare-commit-msg.sample update.sample' –

+0

Créer un nouveau fichier avec le nom 'post-commit' –