Do primeiro commit ao rebase interativo — guia prático no terminal com exemplos reais.
Antes de usar o Git, configure seu nome e e-mail. Essas informações aparecerão em cada commit que você fizer.
# Configurar nome do usuário
git config --global user.name "Seu Nome"
# Configurar email
git config --global user.email "seu.email@exemplo.com"
# Verificar configuração
git config --list
--global faz a configuração valer para todos os projetos no seu computador. Para um projeto específico, tire o --global.Criar um repositório local:
mkdir meu-projeto
cd meu-projeto
git init
Initialized empty Git repository in /caminho/meu-projeto/.git/
Clonar um repositório existente:
git clone https://github.com/usuario/repositorio.git
Isso cria uma pasta com todos os arquivos do repositório remoto, incluindo o histórico completo de commits.
O fluxo do dia a dia com Git segue 4 passos fundamentais:
Passo 1 — Verificar status
git status
Mostra arquivos modificados, não adicionados ou prontos para commit.
Passo 2 — Adicionar mudanças
git add arquivo.txt # Adiciona um arquivo específico
git add . # Adiciona todas as mudanças
Passo 3 — Criar um commit
git commit -m "Mensagem explicando a mudança"
"fix: corrige bug no login"Passo 4 — Enviar para o remoto
git push origin main
origin — nome do repositório remotomain — branch principal (ou master em alguns casos)Branches permitem desenvolver funcionalidades isoladas sem afetar o código principal.
git checkout -b minha-branch
Cria e troca para uma nova branch
git checkout main
Troca para a branch main
git branch
Lista branches locais
git branch -a
Lista todas, inclusive remotas
Merge — unir branches:
git checkout main
git merge minha-branch
Ver commits:
git log
git log --oneline # versão resumida
git log --graph --oneline --all # visual bonito do histórico
Ver mudanças:
git diff # alterações não adicionadas
git diff --staged # alterações prontas para commit
Blame — quem alterou cada linha:
git blame arquivo.txt
Rebase Interativo — juntar commits (squash):
git rebase -i HEAD~3
pick para manter ou squash para unir commitsAlterar último commit:
git commit --amend -m "Nova mensagem do commit"
Reset — voltar commits:
git reset --soft HEAD~1 # mantém alterações no stage
git reset --hard HEAD~1 # perde alterações completamente
--hard apaga mudanças permanentemente, sem chance de recuperar.Aplica commits específicos de outra branch, sem precisar fazer merge completo.
git checkout main
git cherry-pick abc123 # aplica commit específico pelo hash
Guarda mudanças em progresso sem precisar criar um commit.
git stash # guarda mudanças atuais
git stash list # lista stashes salvos
git stash apply # reaplica último stash (mantém na lista)
git stash pop # reaplica e remove do stash
Adicionar repositório remoto:
git remote add origin https://github.com/usuario/repositorio.git
Atualizar branch local com o remoto:
git fetch origin # busca dados do remoto sem aplicar
git pull origin main # busca e aplica no branch atual
fetch só baixa os dados. pull baixa e aplica automaticamente no seu branch.tipo: descrição — ex.: fix: corrige bug no loginVisualização em árvore do histórico:
git log --graph --decorate --oneline --all