2010-07-29 7 views
3

J'ai récemment écrit des crochets git pour mon équipe de projet. Je voudrais savoir si les développeurs effectuent divers commits localement, sans suivre le modèle de message de validation standard. alors ils poussent ces commits. Y aura-t-il un échec parce que les engagements ne suivent pas le modèle?git hooks push et commits locaux

Le résultat souhaité serait qu'ils soient en mesure de s'engager localement comme ils le souhaitent, puis sont obligés de suivre une structure quand ils repoussent à la branche d'entreprise principale.

Pensées? Est-ce la meilleure pratique?

+0

"Est-ce que leur poussée échouera parce que leurs commits ne suivent pas le modèle?" : si vous écrivez un crochet qui rejettera leur poussée si leurs commits ne suivent pas le modèle, alors oui. Que demandez-vous exactement? – Cascabel

+0

ma question était si j'écris un crochet de validation qui vérifie un motif et ils ne suivent pas le modèle localement. y aura-t-il un échec? ou y a-t-il un poussoir? :) désolé si je n'étais pas clair. – myusuf3

Répondre

6

L'astuce est: git hooks ne sont pas publiées (poussé/tiré)

Donc, si vos membres du projet poussent à une prise en pension nue où un crochet côté serveur (pre-receive ou update) vérifier le motif message de validation (qui Je ne suis pas sûr que cela puisse être fait), cette poussée échouera.
Mais le commit vit sur le dépôt local du développeur et il/elle doit encore le réparer (git commit --amend si aucun autre commit n'a déjà été fait).

Il serait préférable de:

  • faire un modèle repo Git avec les crochets à droite
  • assurez-vous que les développeurs initialize leur prise en pension avec l'option --template faisant référence au droit modèle commun.
    Voir template directory section de git init.

De cette façon, ils ne plus rapide que sur le côté serveur (où n commits incorrectes peuvent être poussés, et échouera)

Dans d'autres travaux, voici un crochet côté client serait plus approprié.

Questions connexes