287 votes

Git : erreur "dites-moi qui vous êtes".

J'ai des serveurs d'applications que je démarre ensemble en utilisant Chef + quelques scripts bash ad-hoc. Le problème est que, lorsque je veux exécuter une mise à jour sur l'un de ces serveurs d'applications, j'obtiens :

19:00:28: *** Please tell me who you are.

Run

  git config --global user.email "you@example.com"
  git config --global user.name "Your Name"

Dois-je vraiment définir ce paramètre pour faire un simple git pull origin master à chaque fois que je mets à jour un serveur d'applications ? Existe-t-il un moyen de contourner ce comportement afin d'éviter les erreurs lorsque le nom et l'adresse électronique ne sont pas définis ?

3 votes

D'après ce que j'ai vu, non, mais je ne vois aucun problème à ajouter votre nom et votre adresse électronique, même s'il s'agit de faux noms et adresses électroniques.

10 votes

Oui, vous devez les définir, si le "simple" git pull va créer un commit, parce qu'il a fait une fusion, par exemple.

1 votes

Vous décrivez un scénario de déploiement à sens unique. Je n'ajouterais pas les informations d'identification pour éviter tout commit automatique. Oui, vous verrez le problème avec cette erreur, mais cela signifiera que quelqu'un fouine dans la production et modifie les fichiers manuellement en déclenchant la fusion.

325voto

luxuia Points 147

J'ai passé beaucoup d'heures dessus lorsque j'appelle PHP script pour init y commit à git. Et j'ai trouvé que le flux de travail devrait être le suivant :

  1. git init
  2. git config user.name "someone"
  3. git config user.email "someone@someplace.com"
  4. git add *
  5. git commit -m "some init msg"

Si vous intervertissez [23] et 1, la configuration ne fonctionnera pas du tout.

Je souhaite que cela puisse aider.

1 votes

C'est la pratique correcte pour initier un dépôt git. Mais pour mettre à jour un dépôt, la solution @gfxmonk est meilleure.

0 votes

Pouvez-vous expliquer comment cela fonctionne et pourquoi il y avait une erreur avant de faire cela ?

3 votes

Vous pouvez ajouter --global passer à git config et faites-le une fois pour votre compte OS. Après cela, les étapes 2-3 ne sont pas nécessaires.

69voto

gfxmonk Points 2981

Au lieu de faire un git pull que vous pouvez faire :

git fetch
git reset --hard origin/master

Ni l'un ni l'autre n'exige que vous configuriez votre nom d'utilisateur / courriel git.

Cela détruira toutes les modifications locales non commises / commits, et laissera votre HEAD pointer vers un commit (pas une branche). Mais ni l'un ni l'autre ne devrait être un problème pour un serveur d'applications puisque vous ne devriez pas faire de modifications locales ou de commits sur ce dépôt.

0 votes

L'automerge de git pull est dangereux dans cette situation, il est préférable de faire une réinitialisation.

0 votes

Ne serait-il pas préférable d'utiliser git fetch && git reset --hard HEAD ?

0 votes

@jacoor nope : git reset --hard HEAD ne fait que jeter les changements non livrés, il ne change pas le commit sur lequel votre espace de travail est basé (puisque par définition vous êtes déjà sur HEAD).

35voto

DoronK Points 438

Si vous utilisez Sourcetree : Référentiel -> Paramètres du référentiel --> Avancé --> décocher la case "Utiliser les paramètres globaux de l'utilisateur".

a bien fonctionné pour moi.

0 votes

Dans mon cas, j'ai dû le revérifier, mais quand même ! Merci pour votre aide

12voto

twalberg Points 19804

Mettez à jour votre processus d'amorçage pour créer un ${HOME}/.gitconfig avec le contenu approprié, ou pour en copier un existant depuis quelque part.

1voto

Mansab Uppal Points 71

Dois-je vraiment définir cela pour faire un simple git pull origin master chaque fois que je mets à jour un serveur d'applications ? Existe-t-il un moyen de contourner ce comportement afin que l'erreur ne se produise pas lorsque le nom et l'adresse électronique ne sont pas définis ?

Il ne le demandera qu'une fois et s'assurera que la clé publique rsa de cette machine est ajoutée à votre compte github sur lequel vous essayez de commiter ou de passer une demande de pull.

Vous trouverez de plus amples informations à ce sujet : Ici

1 votes

Le lien est cassé

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X