web-dev-qa-db-fra.com

GIT commet en tant qu'utilisateur différent sans e-mail / ou uniquement e-mail

J'essaie de valider certaines 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 de manuel GIT pour la commande commit, il est dit que je peux utiliser le

standard A U Thor <[email protected]> format

Pour l'option --author.

Où ce format est-il défini? Que signifient A et U? Comment puis-je m'engager pour un autre utilisateur avec seulement un nom d'utilisateur ou seulement un email?

109
Willem D'Haeseleer

Le

standard format U Thor <[email protected]>

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

A U Thor = nom d'utilisateur requis

  • La séparation des caractères probablement indique que les espaces sont autorisés, cela pourrait également ressembler à des initiales.
  • Le nom d'utilisateur doit être suivi d'un espace. Les espaces supplémentaires seront tronqués.

<[email protected]> = adresse électronique facultative

  • Doit toujours être entre <> signes.
  • Le format de l'adresse email n'est pas validé, vous pouvez entrer ce que vous voulez
  • Facultatif, vous pouvez l'omettre explicitement en utilisant <>

Si vous n'utilisez pas cette syntaxe exacte, git recherchera dans les validations existantes et utilisera la première validation 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 cependant entrer l'adresse email comme nom d'utilisateur et explicitement omettre l'adresse email. 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 précipité dessus en essayant de convertir un dépôt de Mercurial en git. J'ai testé les commandes sur msysgit 1.7.10.

30
Willem D'Haeseleer

Le format d’auteur minimal requis, comme indiqué dans this SO answer , =

Name <email>

Dans votre cas, cela signifie que vous voulez écrire

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

D'après le commentaire de Willem D'Haeseleer, si vous n'avez pas d'adresse email, vous pouvez utiliser <>:

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

Comme écrit sur le git commit page de manuel à laquelle vous avez accédé, si vous fournissez autre chose que cela, il est utilisé comme un jeton de recherche pour rechercher dans les commits précédents, à la recherche d'autres commissions de cet auteur.

128
eykanal

Le format spécifique est:

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

Il suffit de compléter:

git commit --author = "[email protected]" -m "L'usurpation d'identité est un mal."

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

*** S'il vous plaît dites-moi qui vous êtes.

Courir

git config --global user.email "[email protected]" "git config --global user.name" Votre nom "

définir l'identité par défaut de votre compte. Omettre --global pour définir l'identité uniquement dans ce référentiel.

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

Il suffit donc de lancer "git config", puis "git commit"

8
qinxian

Format

A U Thor <[email protected]>

signifie simplement que vous devez spécifier

FirstName MiddleName LastName <[email protected]>

Les noms de prénom et de prénom sont facultatifs (peut-être que la partie précédant l'email n'a pas du tout un format strict). Essayez par exemple ceci:

git commit --author="John <[email protected]>" -m "some fix"

Comme le dit la documentation:

  --author=<author>
       Override the commit author. Specify an explicit author using the standard 
       A U Thor <[email protected]> format. Otherwise <author> is assumed to 
       be a pattern and is used to search for an existing commit by that author 
       (i.e. rev-list --all -i --author=<author>); the commit author is then copied 
       from the first such commit found.

si vous n'utilisez pas ce format, git considère la chaîne fournie comme un modèle et essaie de trouver le nom correspondant parmi les auteurs d'autres commits.

6
KL-7

Ouvrez Git Bash.

Définir un nom d'utilisateur Git:

$ git config --global user.name "name family" Confirmez que vous avez défini le nom d'utilisateur Git correctement:

$ git config --global user.name

nom famille

Définir un email Git:

$ git config --global user.email [email protected] Confirmez que vous avez configuré le courrier électronique Git correctement:

$ git config --global user.email

[email protected]

2
A Mo

Exécutez ces deux commandes depuis le terminal pour définir le courrier électronique et le nom de l'utilisateur.

 git config --global user.email "[email protected]" 

 git config --global user.name "your name" 
0
Diptendu Das