Configurar o Git: git config, nome, e-mail e chaves SSH
A configuração básica do Git são os comandos git config --global user.name e git config --global user.email, que assinam seus commits, além de escolher editor e branch padrão. Para entrar no GitHub sem senha, crie uma chave SSH com ssh-keygen -t ed25519, adicione a chave pública nas configurações da conta e teste a conexão com ssh -T git@github.com.
Configuração mínima do Git em um minuto
Logo após a instalação, execute quatro comandos. Sem os dois primeiros, o Git não deixa fazer commit; os outros evitam incômodos comuns.
git config --global user.name "Ana Souza"
git config --global user.email "ana@example.com"
git config --global init.defaultBranch main
git config --global core.editor "code --wait"
Confira o resultado:
$ git config --global --list
user.name=Ana Souza
user.email=ana@example.com
init.defaultbranch=main
core.editor=code --wait
A seguir, veja o que cada configuração faz, onde o Git as guarda e como conectar-se ao GitHub por SSH.
Como o git config funciona: três níveis de configuração
O comando git config lê e grava parâmetros em um de três arquivos. O nível mais específico sobrescreve o mais geral.
| Nível | Flag | Arquivo | Vale para |
|---|---|---|---|
| Do sistema | --system | /etc/gitconfig (no Windows, na pasta de instalação do Git) | Todos os usuários do computador |
| Global | --global | ~/.gitconfig ou ~/.config/git/config | Todos os seus repositórios |
| Local | --local (padrão) | .git/config dentro do repositório | Apenas aquele repositório |
Quase tudo o que é pessoal se configura de forma global, e as exceções ficam no nível local. Por exemplo, o e-mail de trabalho para projetos de uma empresa é definido dentro do repositório específico, sem a flag --global.
Comandos úteis do git config
git config user.email # mostra o valor atual
git config --list --show-origin # todas as configurações e de qual arquivo cada uma vem
git config --global --edit # abre o ~/.gitconfig no editor
git config --global --unset core.editor # remove o parâmetro
A flag --show-origin é a melhor ajuda na hora de depurar: ela mostra por que o seu e-mail está «errado», indicando o arquivo de onde veio o valor.
Nome e e-mail: por que isso não é só formalidade
Cada commit guarda para sempre o nome e o e-mail do autor. Não são login nem senha, e o Git não os verifica. Mas o GitHub e o GitLab associam os commits à sua conta pelo e-mail: se o endereço não bate com nenhum e-mail confirmado no perfil, os commits não entram no gráfico de atividade e aparecem sem foto.
Não é possível mudar nome ou e-mail retroativamente sem reescrever o histórico, então confira as configurações antes do primeiro commit.
Esconder seu e-mail real
Se o repositório é público, seu e-mail fica visível para quem olhar o histórico. O GitHub oferece um endereço de serviço no formato ID+usuario@users.noreply.github.com (em Settings → Emails). Use-o no Git:
git config --global user.email "12345678+ana@users.noreply.github.com"
E-mails diferentes para trabalho e projetos pessoais
Para não configurar cada repositório de trabalho à mão, use inclusão condicional. No ~/.gitconfig:
[includeIf "gitdir:~/trabalho/"]
path = ~/.gitconfig-trabalho
E no ~/.gitconfig-trabalho:
[user]
email = ana@empresa.com.br
Agora, todos os repositórios dentro de ~/trabalho/ usam automaticamente o e-mail do trabalho. A barra no final do caminho é obrigatória.
Outras configurações úteis
Editor
O Git abre um editor para mensagens de commit, rebase interativo e merges. Por padrão, muitas vezes é o Vim. Opções:
git config --global core.editor "code --wait" # VS Code
git config --global core.editor "nano" # Nano
git config --global core.editor "subl -n -w" # Sublime Text
Branch padrão
init.defaultBranch main define o nome da primeira branch em novos repositórios (disponível a partir do Git 2.28). Sem isso, o Git cria a master e mostra um aviso sobre a mudança de nome.
Quebras de linha
git config --global core.autocrlf true # Windows
git config --global core.autocrlf input # macOS e Linux
Assim, o repositório guarda sempre quebras de linha LF, e a equipe não vê «alterações» em todas as linhas de um arquivo.
Comportamento do git pull
Se você não definir a estratégia, o Git atual pede que você escolha quando os históricos divergem. Escolha uma:
git config --global pull.rebase false # merge (padrão)
git config --global pull.rebase true # rebase, histórico linear
git config --global pull.ff only # só avanço rápido; caso contrário, erro
Nomes de arquivos com acentos e cores
git config --global core.quotepath false
git config --global color.ui auto
Aliases
git config --global alias.st status
git config --global alias.co checkout
git config --global alias.br branch
git config --global alias.lg "log --oneline --graph --decorate --all"
git config --global alias.last "log -1 HEAD"
Agora git lg mostra o grafo das branches, e git last mostra o último commit.
Como fica o ~/.gitconfig depois da configuração
[user]
name = Ana Souza
email = ana@example.com
[init]
defaultBranch = main
[core]
editor = code --wait
autocrlf = input
quotepath = false
[pull]
rebase = false
[alias]
st = status
lg = log --oneline --graph --decorate --all
É um arquivo de texto comum: pode ser editado à mão e levado de um computador para outro.
Git login: como entrar no GitHub
O Git não tem o comando git login, e essa é uma armadilha comum para iniciantes. O Git não guarda uma «conta»: a autenticação acontece quando você acessa o servidor (clone, push, fetch), por um de dois protocolos.
| HTTPS | SSH | |
|---|---|---|
| Endereço | https://github.com/usuario/repo.git | git@github.com:usuario/repo.git |
| Como o acesso é confirmado | Token de acesso ou login pelo navegador (Credential Manager) | Par de chaves SSH |
| Senha da conta | Não é aceita desde 2021 | Não é necessária |
| Quando é mais cômodo | Windows com Git Credential Manager, proxies corporativos | macOS, Linux, servidores, CI |
Login por HTTPS
No Git for Windows e nas versões para macOS com Git Credential Manager, o primeiro git push abre uma janela do navegador para entrar no GitHub, e os dados ficam guardados no cofre do sistema. Outra opção é a ferramenta oficial do GitHub: o comando gh auth login conduz a autenticação e configura o Git. Se você faz tudo manualmente, crie um personal access token nas configurações do GitHub (Developer settings) e digite-o no lugar da senha.
SSH para o Git: configuração passo a passo
A chave SSH é um par de arquivos: a chave privada fica com você, e a pública vai para o GitHub. O servidor confirma que você tem a parte privada, e a senha nunca mais é pedida.
Passo 1. Verifique se já existe uma chave
ls -la ~/.ssh
Se já houver id_ed25519 e id_ed25519.pub, pule para o passo 3.
Passo 2. Crie a chave
ssh-keygen -t ed25519 -C "ana@example.com"
Pressione Enter para salvar a chave no caminho padrão e defina uma senha (passphrase), que protege a chave caso o notebook seja roubado. Ed25519 é o algoritmo moderno recomendado. Se um sistema antigo não suportar, use ssh-keygen -t rsa -b 4096 -C "ana@example.com".
Passo 3. Adicione a chave ao ssh-agent
O agente mantém a chave descriptografada na memória, para que você não digite a senha a cada push.
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed25519
No macOS, adicione ao ~/.ssh/config as linhas abaixo, para que a senha fique guardada no Keychain:
Host github.com
AddKeysToAgent yes
UseKeychain yes
IdentityFile ~/.ssh/id_ed25519
e execute ssh-add --apple-use-keychain ~/.ssh/id_ed25519.
Passo 4. Adicione a chave pública no GitHub
cat ~/.ssh/id_ed25519.pub
Copie a linha inteira, a partir de ssh-ed25519. No GitHub, abra Settings → SSH and GPG keys → New SSH key, cole a chave e dê a ela um nome claro, como «Notebook 2026». Nunca envie nem publique o arquivo sem .pub: esse é a chave privada.
Passo 5. Teste a conexão
$ ssh -T git@github.com
Hi ana! You've successfully authenticated, but GitHub does not provide shell access.
Na primeira conexão, o SSH pergunta se você confia no host. Compare a impressão digital (fingerprint) com a publicada na documentação do GitHub e responda yes.
Passo 6. Troque o repositório para SSH
Se o repositório foi clonado por HTTPS, troque o endereço do remoto:
git remote -v
git remote set-url origin git@github.com:ana/meu-projeto.git
git push
Várias contas do GitHub no mesmo computador
Uma chave SSH só pode ser vinculada a uma conta do GitHub. Para uma conta de trabalho e uma pessoal, crie duas chaves e apelidos de host no ~/.ssh/config:
Host github-trabalho
HostName github.com
User git
IdentityFile ~/.ssh/id_ed25519_trabalho
IdentitiesOnly yes
Clone os repositórios de trabalho pelo apelido: git clone git@github-trabalho:empresa/app.git. Junto com o includeIf para o e-mail, isso separa completamente o ambiente de trabalho do pessoal.
Erros comuns na configuração
«Please tell me who you are»
Faltam user.name e user.email. Execute os comandos do início do artigo e repita o commit.
«Permission denied (publickey)»
O GitHub não encontrou uma chave adequada. Confira se a chave foi adicionada ao agente (ssh-add -l) e se a parte pública está cadastrada na conta. Para ver os detalhes, rode ssh -vT git@github.com.
«Support for password authentication was removed»
Você digitou a senha da conta em um acesso por HTTPS. Use um token, o login pelo Credential Manager ou passe para SSH.
Commits no GitHub sem foto
O e-mail em git config user.email não foi adicionado ao perfil do GitHub. Inclua-o em Settings → Emails; os commits antigos são associados automaticamente.
Porta 22 bloqueada na rede
O GitHub também aceita SSH pela porta 443. No ~/.ssh/config, use Host github.com, Hostname ssh.github.com e Port 443.
Ordem de configuração em um computador novo
- Instale o Git e confira com
git --version. - Defina
user.name,user.email,init.defaultBranche o editor. - Copie ou crie o
~/.gitconfigcom os aliases e a estratégia de pull. - Crie uma nova chave SSH (não copie a chave privada de uma máquina para outra sem necessidade) e cadastre-a no GitHub.
- Confirme o acesso com
ssh -T git@github.come clone o repositório de trabalho pelo endereço SSH.
Uma chave separada para cada dispositivo também ajuda: se você perder o notebook, basta remover no GitHub uma única chave, sem mexer no acesso das outras máquinas.
Resumo
Configurar o Git se resume a três passos: definir nome e e-mail com git config --global, escolher editor, branch padrão e a estratégia do pull, e então conectar-se ao GitHub, de forma mais simples e segura, por chave SSH. Lembre-se de que não existe git login: a autenticação acontece quando você acessa o servidor. Esses ajustes de configuração e de acesso SSH são praticados passo a passo no nosso curso de Git.
Perguntas frequentes
Onde ficam as configurações do Git no Windows?
As globais ficam no arquivo C:\Users\SeuNome\.gitconfig, e as locais, no .git\config de cada repositório. Para descobrir o caminho exato de cada valor, use git config --list --show-origin.
Como redefinir as configurações do Git?
Apague ou renomeie o arquivo ~/.gitconfig, e o Git volta aos valores padrão. Para remover um parâmetro específico, use git config --global --unset nome.
Dá para usar a mesma chave SSH para GitHub e GitLab?
Sim, a mesma chave pública pode ser cadastrada em serviços diferentes. A única restrição: no GitHub, a chave fica vinculada a uma única conta.
Como assinar commits para aparecer o selo Verified no GitHub?
Configure a assinatura com uma chave GPG ou SSH: por exemplo, git config --global gpg.format ssh, user.signingkey com o caminho da chave pública e commit.gpgsign true. Depois, cadastre a chave no GitHub como Signing key.
Preciso refazer a configuração do Git depois de atualizar o sistema?
Não. Atualizações não alteram o ~/.gitconfig nem as chaves em ~/.ssh, então todas as configurações são mantidas.
Este tema é abordado em profundidade, com prática, no curso “Git do zero ao desenvolvedor confiante”.
- Instalação e Configuração: Preparando o Git para o Primeiro Uso
- GitHub e repositórios remotos: seu código na nuvem