Tutorial

Configurar o Git: git config, nome, e-mail e chaves SSH

Atualizado: · Skillaria.Top

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ívelFlagArquivoVale 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/configTodos os seus repositórios
Local--local (padrão).git/config dentro do repositórioApenas 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.

HTTPSSSH
Endereçohttps://github.com/usuario/repo.gitgit@github.com:usuario/repo.git
Como o acesso é confirmadoToken de acesso ou login pelo navegador (Credential Manager)Par de chaves SSH
Senha da contaNão é aceita desde 2021Não é necessária
Quando é mais cômodoWindows com Git Credential Manager, proxies corporativosmacOS, 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

  1. Instale o Git e confira com git --version.
  2. Defina user.name, user.email, init.defaultBranch e o editor.
  3. Copie ou crie o ~/.gitconfig com os aliases e a estratégia de pull.
  4. Crie uma nova chave SSH (não copie a chave privada de uma máquina para outra sem necessidade) e cadastre-a no GitHub.
  5. Confirme o acesso com ssh -T git@github.com e 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.

Aprenda este tema em vídeo

Este tema é abordado em profundidade, com prática, no curso “Git do zero ao desenvolvedor confiante”.

Ir para o curso