Pular para o conteúdo
Cursos

DevClub

LógicaFront-endBack-endMobile

IA Club

IA na prática
Estudar programaçãoEstudar IA
LiçãoIniciantecódigo testado

Instalar o Git e configurar user.name e user.email

Instalação no Windows, macOS e Linux, o que o git --version informa e como acertar user.name e user.email antes do commit sair com autor errado.

Rodolfo Mori4 min de leitura

Instalar o Git coloca o comando git na máquina; configurar user.name e user.email define a identidade gravada nos próximos commits. Esses dados não são login nem senha. Eles fazem parte do histórico e precisam representar quem assumiu a autoria daquela mudança.

Os testes desta lição usaram uma pasta de configuração temporária para não alterar o perfil real do macOS. O executável respondeu:

bash
git --version
git version 2.54.0 (Apple Git-156)

Escolha uma instalação que você consegue atualizar

No Windows, o instalador oficial do Git for Windows inclui Git Bash e as integrações básicas. No macOS, as Command Line Tools da Apple fornecem Git; o Homebrew é outra opção quando você quer acompanhar a versão distribuída pelo gerenciador. Em Debian e Ubuntu, o pacote vem pelo apt; em Fedora, pelo dnf.

bash
# Debian ou Ubuntu
sudo apt update
sudo apt install git

# Fedora
sudo dnf install git

Esses comandos são orientação por plataforma e não foram executados no macOS do teste. A execução validada ocorreu no macOS. Depois de instalar, feche e abra o terminal se o comando ainda não aparecer. command -v git mostra qual executável venceu no PATH:

bash
command -v git
git version --build-options | sed -n '1,3p'
/usr/bin/git git version 2.54.0 (Apple Git-156) cpu: arm64 no commit associated with this build

O caminho pode ser outro na sua máquina. O ponto é conferir, não copiar o resultado. Ter dois Gits instalados não é necessariamente um problema, mas explica por que uma opção existe no computador do colega e não no seu.

Um commit precisa de identidade

Para reproduzir a falha sem tocar no perfil da pessoa autora, o teste ativou user.useConfigOnly, esvaziou nome e e-mail e tentou commitar num repositório temporário:

bash
HOME="$HOME_TEMP" git -c user.useConfigOnly=true \
  -c user.name= -c user.email= commit -m "docs: inicia catálogo"
Author identity unknown

*** Please tell me who you are.

Run

git config –global user.email “you@example.com” git config –global user.name “Your Name”

to set your account’s default identity. Omit –global to set the identity only in this repository.

fatal: empty ident name (for <>) not allowed

A mensagem não pede credencial do GitHub. Ela pede os metadados de autoria. Configure uma identidade global quando ela serve para a maioria dos seus projetos:

bash
HOME="$HOME_TEMP" git config --global user.name "Ana Souza"
HOME="$HOME_TEMP" git config --global user.email "ana@example.test"
HOME="$HOME_TEMP" git config --global --get-regexp '^user\.'
user.name Ana Souza user.email ana@example.test

Use um endereço de exemplo nos exercícios, mas coloque um e-mail seu na configuração real. Se o repositório pertence ao trabalho e exige outro e-mail, uma configuração local substitui a global só naquela pasta.

Global, local e system formam uma cascata

Pense nas três camadas como regras de uma rede de lojas. system vale para a máquina; global, para a pessoa usuária; local, apenas para a unidade atual. A regra mais específica vence. O limite dessa analogia é que algumas chaves podem acumular valores, em vez de uma simplesmente apagar a outra.

No laboratório, o e-mail global era ana@example.test, mas a loja recebeu um e-mail local:

bash
git config --local user.email "ana.loja@example.test"
git config user.name
git config user.email
Ana Souza ana.loja@example.test

Para descobrir a origem de cada valor, não tente adivinhar. Peça a lista com arquivo de origem:

bash
HOME="$HOME_TEMP" git config --list --show-origin
file:/Library/Developer/CommandLineTools/usr/share/git-core/gitconfig credential.helper=osxkeychain file:/Library/Developer/CommandLineTools/usr/share/git-core/gitconfig init.defaultbranch=main file:/tmp/grupo-git-home.8ydYC3/.gitconfig user.name=Ana Souza file:/tmp/grupo-git-home.8ydYC3/.gitconfig user.email=ana@example.test file:.git/config user.email=ana.loja@example.test

O caminho temporário é parte da execução, não um local que você deve criar. Na sua máquina, procure a última ocorrência da chave em questão.

Defina a branch inicial e um editor conhecido

Novos repositórios podem começar em main, evitando renomear a branch depois. O editor é usado quando um comando precisa de uma mensagem e você não passou -m.

bash
git config --global init.defaultBranch main
git config --global core.editor "code --wait"
git config --global --get-regexp '^(init\.defaultBranch|core\.editor)$'
init.defaultbranch main core.editor code --wait

Só copie code --wait se o comando code funciona no seu terminal. Vim, Nano e outros editores também servem. O requisito é saber salvar e fechar; um editor desconhecido parece que “travou” o Git durante merge e rebase.

Corrija o último autor antes de publicar

Se apenas o último commit local saiu com identidade errada, ajuste a configuração e recrie seus metadados:

bash
git config user.name "Ana Souza"
git config user.email "ana@example.test"
git commit --amend --reset-author --no-edit
git log -1 --format='%an &lt;%ae&gt;'
Ana Souza <ana@example.test>

O amend cria outro commit, portanto o hash muda. Se o commit já foi enviado e outras pessoas o puxaram, reescrever exige coordenação. Para vários commits antigos, não rode receitas de reescrita às cegas: converse com o time, preserve uma referência de segurança e entenda o impacto no remoto. A lição de rebase e histórico explica por que hashes mudam.

Token e SSH só entram ao falar com um remoto

Nome e e-mail identificam autoria. Token HTTPS ou chave SSH autenticam uma operação no GitHub. São problemas separados. Nunca coloque token em user.password, no endereço do remote ou num arquivo commitado. Consulte o fluxo atual na documentação do provedor e use o gerenciador de credenciais.

O comando abaixo apenas inspeciona remotos; num repositório ainda local, não há saída:

bash
git remote -v

O comando não escreveu nada no terminal porque nenhum remoto estava configurado. Nesse caso, stdout vazio é o resultado esperado.

Na prática de remote, push, clone e pull, o remoto usado nos testes é bare e local, por isso não pede credencial. Quando você trocar esse caminho por GitHub, escolha HTTPS com token ou SSH com chave, sem publicar o segredo.

Sua missão termina quando git config --list --show-origin mostra o nome e o e-mail corretos, você identifica qual arquivo forneceu cada valor e um commit de teste exibe a autoria esperada. Depois avance para git init e git commit, sem alterar configurações de projetos reais durante o experimento.

  • git
  • instalacao
  • git config
  • ssh
  • token

Perguntas frequentes

user.email precisa ser o mesmo e-mail público do GitHub?
Não precisa ser público. Para associar commits à conta, use um e-mail verificado ou o endereço noreply fornecido pelo GitHub.

Dúvidas e comentários

Travou em algum passo? Pergunte aqui — a equipe e outros alunos respondem.

Todo o código deste artigo foi executado em git version 2.54.0 (Apple Git-156) no macOS 27, e as saídas exibidas são as reais — como produzimos este conteúdo.

Fontes consultadas

  1. Pro Git — First-Time Git Setup — git-scm.com
  2. Git — git config — git-scm.com

Continue por aqui