Estou tentando confirmar algumas alterações como um usuário diferente, mas não tenho um endereço de email válido, o seguinte comando não está funcionando para mim:
git commit --author="john doe" -m "some fix"
fatal: No existing author found with 'john doe'
Tenho o mesmo problema ao tentar confirmar apenas com um endereço de email
git commit --author="[email protected]" -m "some fix"
fatal: No existing author found with '[email protected]'
Nas páginas de manual do GIT para o comando commit, ele diz que posso usar o
standard A U Thor <[email protected]> format
Para a opção --author.
Onde esse formato é definido? o que A e U representam? como faço para confirmar para um usuário diferente com apenas um nome de usuário ou apenas um email?
Respostas:
O formato mínimo exigido do autor, conforme indicado nesta resposta do SO , é
No seu caso, isso significa que você deseja escrever
De acordo com o comentário de Willem D'Haeseleer, se você não tiver um endereço de e-mail, poderá usar
<>
:Conforme escrito na
git commit
página de manual à qual você vinculou, se você fornecer algo menor que isso, é usado como um token de pesquisa para pesquisar confirmações anteriores, procurando outras confirmações desse autor.fonte
"name <>"
egit commit --amend
depois, falhará cominvalid ident
erro; então não façaO formato específico é:
fonte
o
Parece ser definido da seguinte forma: (tanto quanto eu sei, com absolutamente nenhuma garantia)
AU Thor = nome de usuário obrigatório
<[email protected]> = endereço de email opcional
Se você não usar essa sintaxe exata, o git pesquisará as confirmações existentes e usará a primeira confirmação que contém a string fornecida.
Exemplos:
Apenas nome de usuário
Omita o endereço de email explicitamente:
Somente email
Tecnicamente, isso não é possível. No entanto, você pode inserir o endereço de email como o nome de usuário e omitir explicitamente o endereço de email. Isso não parece muito útil. Eu acho que faria ainda mais sentido extrair o nome de usuário do endereço de email e usá-lo como o nome de usuário. Mas se você precisar:
Corri para isso ao tentar converter um repositório de mercurial para git. Testei os comandos no msysgit 1.7.10.
fonte
Basta suplementar:
Em alguns casos, a confirmação ainda falha e mostra a seguinte mensagem:
Então, basta executar "git config" e, em seguida, "git commit"
fonte
Formato
significa simplesmente que você deve especificar
Parece que o sobrenome e o sobrenome são opcionais (talvez a parte antes do email não tenha um formato estrito). Tente, por exemplo, o seguinte:
Como dizem os documentos:
se você não usar esse formato, o git tratará a string fornecida como um padrão e tentará encontrar o nome correspondente entre os autores de outras confirmações.
fonte
A
--author
opção não funciona:Isto faz:
fonte
git commit -c user.name="j bloggs" -am "message"
dá um errofatal: Option -m cannot be combined with -c/-C/-F
Abra o Git Bash.
Defina um nome de usuário do Git:
$ git config --global user.name "name family" Confirme se você definiu o nome de usuário do Git corretamente:
$ git config --global user.name
Defina um email do Git:
$ git config --global user.email [email protected] Confirme se você configurou o email Git corretamente:
$ git config --global user.email
fonte
Tudo depende de como você se compromete.
Por exemplo:
git commit -am "Some message"
usará seu
~\.gitconfig
nome de usuário. Em outras palavras, se você abrir esse arquivo, verá uma linha parecida com esta:Esse seria o email que você deseja alterar. Se você está fazendo uma solicitação pull através do Bitbucket ou Github etc., você será quem estiver conectado como.
fonte
Uma alternativa se a preocupação é ocultar o endereço de email real ... Se você está se comprometendo com o Github, não precisa de um email real, pode usar
<username>@users.noreply.github.com
Independentemente de usar ou não o Github, você provavelmente deseja primeiro alterar os detalhes do seu committer (no Windows use
SET GIT_...
)Em seguida, defina o autor
https://help.github.com/articles/keeping-your-email-address-private
fonte
Execute estes dois comandos no terminal para definir o email e o nome do usuário
fonte