git s’engage en tant qu’utilisateur différent sans email / ou seulement email

J’essaie de commettre des modifications en tant qu’utilisateur différent, mais je n’ai pas d’adresse électronique valide, la commande suivante ne fonctionne pas pour moi:

git commit --author="john doe" -m "some fix" fatal: No existing author found with 'john doe' 

J’ai le même problème en essayant de commettre avec seulement une adresse email

 git commit --author="[email protected]" -m "some fix" fatal: No existing author found with '[email protected]' 

Sur les pages man de la commande commit, il est écrit que je peux utiliser le

 standard AU Thor  format 

Pour l’option –author.

Où est ce format défini? qu’est-ce que A et U représentent? Comment puis-je m’engager pour un utilisateur différent avec uniquement un nom d’utilisateur ou un e-mail?

Le format d’auteur minimum requirejs, comme indiqué dans cette réponse SO , est

 Name  

Dans votre cas, cela signifie que vous voulez écrire

 git commit --author="Name " -m "whatever" 

Selon le commentaire de Willem D’Haeseleer, si vous n’avez pas d’adresse électronique, vous pouvez utiliser <> :

 git commit --author="Name <>" -m "whatever" 

Comme écrit sur la page de manuel git commit que vous avez liée, si vous fournissez quelque chose de moins que cela, elle est utilisée comme un jeton de recherche pour rechercher les commits précédents, en recherchant d’autres validations par cet auteur.

Le format spécifique est:

 git commit --author="John Doe " -m "Impersonation is evil." 

le

format standard AU Thor

Semble être défini comme suit: (pour autant que je sache, sans aucune garantie)

AU Thor = nom d’utilisateur requirejs

  • La séparation des caractères indique probablement que les espaces sont autorisés, cela peut aussi ressembler à des initiales.
  • Le nom d’utilisateur doit être suivi de 1 espace, les espaces supplémentaires seront tronqués

= adresse email optionnelle

  • Doit toujours être entre <> signes.
  • Le format de l’adresse e-mail n’est pas validé, vous pouvez à peu près entrer ce que vous voulez
  • Facultatif, vous pouvez omettre cela explicitement en utilisant <>

Si vous n’utilisez pas cette syntaxe exacte, git effectuera une recherche dans les commits existants et utilisera le premier commit contenant la chaîne fournie.

Exemples:

  1. Seul nom d’utilisateur

    Omettez l’adresse email explicitement:

     git commit --author="John Doe <>" -m "Impersonation is evil." 
  2. Seulement email

    Techniquement, ce n’est pas possible. Vous pouvez toutefois saisir l’adresse e-mail comme nom d’utilisateur et omettre explicitement l’adresse e-mail. Cela ne semble pas très utile. Je pense qu’il serait encore plus logique d’extraire le nom d’utilisateur de l’adresse e-mail, puis de l’utiliser comme nom d’utilisateur. Mais si vous devez:

     git commit --author="[email protected] <>" -m "Impersonation is evil." 

Je me suis heurté à cela en essayant de convertir un référentiel de mercurial en git. J’ai testé les commandes sur msysgit 1.7.10.

Format

 AU Thor  

signifie simplement que vous devez spécifier

 FirstName MiddleName LastName  

On dirait que les prénoms et les noms de famille sont facultatifs (peut-être que la partie avant le courrier électronique n’a pas de format ssortingct). Essayez, par exemple, ceci:

 git commit --author="John " -m "some fix" 

Comme le disent les médecins:

  --author= Override the commit author. Specify an explicit author using the standard AU Thor  format. Otherwise  is assumed to be a pattern and is used to search for an existing commit by that author (ie rev-list --all -i --author=); the commit author is then copied from the first such commit found. 

Si vous n’utilisez pas ce format, git traite la chaîne fournie comme un modèle et essaie de trouver le nom correspondant parmi les auteurs des autres commits.

Juste compléter :

git commit –author = “[email protected]” -m “L’emprunt d’identité est mauvais.”

Dans certains cas, la validation échoue toujours et affiche le message suivant:

*** S’il te plaît, dis-moi qui tu es.

Courir

git config –global user.email “[email protected]” git config –global user.name “Votre nom”

pour définir l’identité par défaut de votre compte. Omettez –global pour définir l’identité uniquement dans ce référentiel.

fatal: impossible de détecter automatiquement l’adresse e-mail (obtenu xxxx)

Alors lancez simplement “git config”, puis “git commit”

Si vous vous engagez sur Github, vous n’avez pas besoin d’un véritable email que vous pouvez utiliser @users.noreply.github.com

Indépendamment de l’utilisation de Github ou non, vous voudrez probablement d’abord changer les détails de votre committer (sur Windows, utilisez SET GIT_... )

 GIT_COMMITTER_NAME='username' GIT_COMMITTER_EMAIL='[email protected]' 

Ensuite, définissez l’auteur

 git commit --author="username " 

https://help.github.com/articles/keeping-your-email-address-private