Setup Profissional: SSH, Config e Remotes
Configure seu ambiente como um sênior. Chaves SSH modernas, Clones seguros e Gitconfig otimizado.
Antes de commitar, você precisa existir.
1. Identidade e Configuração Global
Não use apenas user.name. Configure os comportamentos padrão para evitar dores de cabeça futuras.
# Identidade
git config --global user.name "Seu Nome"
git config --global user.email "seu.email@empresa.com"
# Editor: Não fique preso no VIM se não souber sair (:q!)
git config --global core.editor "code --wait"
# Workflow: Evite "Merge Commits" desnecessários no pull
git config --global pull.rebase true
# Line Endings (CRLF vs LF): O pesadelo Windows/Linux
# No Windows:
git config --global core.autocrlf true
# No Linux/Mac:
git config --global core.autocrlf input
O Arquivo .gitignore Global
Você não quer commitar .DS_Store ou Thumbs.db em lugar nenhum. Crie um gitignore global.
touch ~/.gitignore_global
git config --global core.excludesfile ~/.gitignore_global
Adicione arquivos de SO nele. Deixe o .gitignore do projeto APENAS para arquivos do projeto (build artifacts, env vars).
2. Autenticação SSH (Esqueça HTTPS)
HTTPS exige senha/token a cada push (ou credenciais cacheadas que expiram). SSH é criptografia assimétrica pura.
Por que Ed25519?
Não use RSA padrão (ssh-keygen -t rsa). É lento e as chaves são gigantes.
Use Ed25519. Curva elíptica, chaves pequenas, extremamente seguro e rápido.
# Gerar chave
ssh-keygen -t ed25519 -C "seu.email@empresa.com"
O Agente SSH
Não digite a senha da chave toda vez. Adicione ao agente.
# Iniciar agente (se não estiver rodando)
eval "$(ssh-agent -s)"
# Adicionar chave
ssh-add ~/.ssh/id_ed25519
Dica: No GitHub/GitLab, vá em Settings -> SSH Keys e cole o conteúdo de
cat ~/.ssh/id_ed25519.pub.
3. Clonando e Gerenciando Remotes
Git Clone: SSH vs HTTPS
# HTTPS (Evite para desenvolvimento)
git clone https://github.com/torvalds/linux.git
# SSH (O jeito profissional)
git clone git@github.com:torvalds/linux.git
Gerenciando Remotes
Às vezes você clona via HTTPS e quer mudar para SSH sem baixar tudo de novo.
# Listar
git remote -v
# Mudar URL
git remote set-url origin git@github.com:usuario/repo.git
# Adicionar um "upstream" (para manter fork atualizado)
git remote add upstream git@github.com:original/repo.git
4. Comandos de Emergência
”Commitando” arquivos errados
Você deu git add . e adicionou a pasta node_modules. O que fazer?
# Remove do "staging" (index), mas mantém o arquivo no disco
git rm --cached -r node_modules/
”Esqueci de adicionar um arquivo no último commit”
Não crie um commit “fix”. Use o --amend.
git add arquivo_esquecido.c
git commit --amend --no-edit
Isso reescreve o commit anterior. Só faça se não tiver dado push ainda!