2014-05-04 1 views
5

est-il un moyen de configurer globalement git pour générer pas automatiquement le courrier électronique de l'utilisateur, si aucune est définie et interrompra la commettras à la place?Empêcher git de générer automatiquement un courrier électronique de l'utilisateur si manquant

$ git commit -m "test" 
[master (root-commit) 71c3e2e] test 
Committer: unknown <[email protected]> 
Your name and email address were configured automatically based 
on your username and hostname. Please check that they are accurate. 

Cela peut causer des fuites graves de la vie privée si le livreur ne suffit pas soin de vérifier git avertissements.

+4

Vous pourriez être en mesure de créer un hook de pré-validation qui vérifie pour cela, et l'avorter si le nom d'utilisateur et l'email ne sont pas configurés. –

+0

Bonne idée - merci! –

+2

Si vous le concevez par vous-même, envisagez de le laisser comme une réponse à votre propre question afin que les futurs lecteurs puissent bénéficier de la solution. Ou bien, pensez à fermer et/ou supprimer cette question. Dépend de vous. –

Répondre

1

Cela peut être fait avec le crochet de pré-validation git, suivant la suggestion de @cupcake.

  1. créer un fichier nommé pre-commit comme ceci:

    #!/bin/sh 
    
    git config user.name >/dev/null 2>&1 
    
    if [[ $? != 0 ]]; then 
        echo "Error: user.name is undefined. Use 'git config user.name \"Your Name\"' to set it." 
        exit 1 
    fi 
    
    git config user.email >/dev/null 2>&1 
    
    if [[ $? != 0 ]]; then 
        echo "Error: user.email is undefined. Use 'git config user.email [email protected]' to set it." 
        exit 1 
    fi 
    
  2. Si nécessaire, le rendre exécutable avec chmod +x pre-commit

  3. Throw ce fichier à des modèles globaux de crochet git:

    • Sur * nix s ystems il se trouve à

      /usr/share/git-core/templates/hooks 
      
    • Sur Windows, il peut être généralement dans

      %ProgramFiles%\Git\share\git-core\templates\hooks 
      
  4. Réinitialisez vos git repo existants avec git init.

+0

N'a pas fonctionné pour moi à cause de l'erreur [[: not found' jusqu'à ce que je change '#!/Bin/sh' en' #!/Bin/bash' – phts

Questions connexes