2017-01-19 2 views
0

Il est un crochet git pour engager au préalable On suppose d'exécuter la commande de esformatter pour chaque fichier modifié (mise en scène),crochet Git engager au préalable ne fonctionne

#!/bin/sh 

for fil in $(git diff --name-only --staged | grep ".js"); do 
esformatter -i$ fil & git add $fil; 
done 

git commit -m "Adding format to files" 

En fait, je voulais que ce code est exécuté dans le même engagement mais je ne sais pas comment le faire. Le code fonctionne réellement jusqu'à la partie terminée. Mais les fichiers ne sont pas ajoutés au commit obviusly, c'est pourquoi j'ai besoin de la partie commit.

Cordialement

+0

Serait-il utile d'utiliser https://nathanhoad.net/git-amend-your-last -comment modifier pour y parvenir? dans le même commit – arnoldssss

+0

Obviusly quand il n'y a pas de réponses il y a des downvotes bravoo !! – arnoldssss

Répondre

1

d'abord penser hors si cela est la racine que vous voulez prendre. Modifier les engagements des gens à la volée risque de créer des désordres difficiles à démêler. Deuxièmement, si vous voulez laisser les changements dans le même commit, vous pouvez simplement supprimer la ligne git commit -m "Adding format to files", donc il n'y a pas de commit séparé effectué par le githook.

Si cela ne fonctionne pas, vous pouvez essayer d'ajouter comme un crochet post-commit et faire git commit --amend

+0

J'ai essayé que ... ne pas faire un commit mais il est publié sans que cela change ... laissez-moi vérifier à nouveau – arnoldssss

+0

Donc je n'ai pas besoin d'ajouter les fichiers? – arnoldssss

+0

Oui, cela ne fonctionne pas, les fichiers sont modifiés mais ne sont pas stockés. Donc, quand je fais le git push, il envoie seulement les changements d'origine pas le code formulé. Le code formaté n'est pas mis en page. – arnoldssss