
Minha favorita:
“Meu relacionamento com o Git é igual a um namoro: eu faço
commit,
ele dá
push,
e quando aparece um conflito a gente termina e eu tento
revertar
a vida.”
Foi boa vai; senão achou então uma segunda tentativa:
“Por que o Git nunca perde a paciência? Porque ele sempre pode
stashar
os problemas.”
Resumo: referência prática dos comandos Git mais usados, com explicações e exemplos completos que a equipe Herez aplicou em projetos reais. Este post serve como checklist rápido e tutorial prático para desenvolvedores e times de engenharia.
Por que este guia importa
O Git é a base do fluxo de trabalho moderno de desenvolvimento. Conhecer os comandos essenciais e saber quando usá‑los reduz erros, acelera entregas e facilita colaboração. Abaixo você encontra os comandos organizados por categoria, exemplos práticos e scripts que a Herez usa em repositórios e pipelines.
Resumo rápido dos comandos
| Categoria | Comando | O que faz |
|---|---|---|
| Básicos | git init | Criar novo repositório |
| Básicos | git clone | Copiar repositório remoto |
| Básicos | git status | Ver alterações pendentes |
| Básicos | git add | Adicionar à área de preparação |
| Básicos | git commit -m "mensagem" | Salvar alterações |
| Sincronização | git pull | Trazer alterações remotas e mesclar |
| Sincronização | git push | Enviar commits ao remoto |
| Sincronização | git remote add <url> | Conectar repositório local a remoto |
| Sincronização | git fetch | Baixar alterações sem mesclar |
| Branches | git branch | Listar, criar ou excluir branches |
| Branches | git switch <nome> | Mudar de branch |
| Branches | git merge <nome> | Mesclar outra branch |
| Branches | git branch -d <nome> | Excluir branch |
| Avançado | git log --oneline --graph --all | Histórico resumido e visual |
| Avançado | git stash | Salvar alterações temporariamente |
| Avançado | git stash pop | Restaurar alterações salvas |
| Avançado | git rebase <branch> | Reaplicar commits para histórico limpo |
| Avançado | git cherry-pick <id-commit> | Aplicar commit específico em outra branch |
| Desfazer | git restore <arquivo> | Desfazer alterações em arquivo |
| Desfazer | git reset HEAD <arquivo> | Remover arquivo da área de preparação |
| Desfazer | git revert <id-commit> | Criar commit que reverte outro |
| Ajuda | git <comando> --help | Ver manual do comando |
Comandos básicos com exemplos práticos
git init
O que faz: inicializa um repositório Git local.
mkdir meu-projeto
cd meu-projeto
git init
# cria .git e prepara o repositório local
git clone
O que faz: clona um repositório remoto para sua máquina.
git clone git@servidor:herez/projeto.git
cd projeto
git status
O que faz: mostra arquivos modificados, staged e não rastreados.
git status --short
# M indica modificado, ?? indica não rastreado
git add
O que faz: adiciona alterações à área de preparação (staging).
git add arquivo.py
git add . # adiciona todas as alterações
git commit
O que faz: cria um commit com as alterações staged.
git commit -m "Corrige bug no parser de CSV"
Sincronização com repositórios remotos
git remote add
O que faz: adiciona um remoto ao repositório local.
git remote add origin git@servidor:herez/projeto.git
git remote -v
git fetch
O que faz: baixa referências e objetos do remoto sem mesclar.
git fetch origin
git log HEAD..origin/main --oneline
git pull
O que faz: busca e mescla alterações do remoto na branch atual.
git pull origin main
git pull --rebase em pipelines locais para manter histórico linear antes de push.
git push
O que faz: envia commits locais para o remoto.
git push origin feature/minha-feature
# para criar upstream:
git push -u origin feature/minha-feature
Trabalhando com branches
git branch
O que faz: listar, criar ou excluir branches.
git branch # lista branches locais
git branch nova-branch # cria nova branch
git branch -d antiga # exclui branch local
git switch
O que faz: muda para outra branch.
git switch nova-branch
# alternativa antiga: git checkout nova-branch
git merge
O que faz: mescla outra branch na atual.
git switch main
git merge feature/minha-feature
git branch -d
O que faz: exclui branch local já mesclada.
git branch -d feature/minha-feature
Comandos avançados e fluxo limpo
git log –oneline –graph –all
O que faz: exibe histórico compacto e visual em árvore.
git log --oneline --graph --all --decorate
git stash
O que faz: guarda alterações temporariamente sem commit.
git stash save "WIP: ajuste parser"
git stash list
git stash pop
git rebase
O que faz: reaplica commits sobre outra base para manter histórico linear.
git switch feature
git fetch origin
git rebase origin/main
# resolver conflitos, depois:
git rebase --continue
git rebase -i) para squash de commits antes de abrir PRs públicos.git cherry-pick
O que faz: aplica um commit específico em outra branch.
git switch hotfix
git cherry-pick a1b2c3d4
Desfazer alterações com segurança
git restore
O que faz: desfaz alterações em arquivo (worktree).
git restore arquivo.txt
# para restaurar versão do commit:
git restore --source=HEAD~1 arquivo.txt
git reset HEAD
O que faz: remove arquivo da área de preparação sem perder alterações locais.
git reset HEAD arquivo.txt
git revert
O que faz: cria um novo commit que reverte outro commit (seguro para histórico público).
git revert a1b2c3d4
# cria commit que desfaz as mudanças do commit especificado
git revert em branches compartilhadas para manter histórico auditável e evitar reescrita pública.
Ajuda e documentação
git <comando> –help
O que faz: exibe manual do comando com opções e exemplos.
git commit --help
git --help --all
Boas práticas Herez para uso de Git
- Mensagens claras: use convenções (tipo: escopo — descrição) e ferramentas de lint para commits.
- Branches curtas: mantenha branches de feature pequenas e com PRs frequentes.
- Rebase local, não remoto: reescreva histórico apenas antes de compartilhar; evite rebase em branches públicas.
- Proteja branches principais: use políticas de merge, revisão obrigatória e CI verde antes de mergear.
- Automatize: hooks, CI e pipelines para testes, lint e deploy reduzem erros humanos.
- Documente: mantenha um CONTRIBUTING.md com fluxo Git recomendado pela equipe.
Checklist rápido para operações comuns
- Iniciar projeto:
git init, criar.gitignore, primeiro commit. - Trabalhar em feature:
git switch -c feature/x, commits pequenos,git push -u origin feature/x. - Atualizar branch:
git fetch,git rebase origin/mainougit merge origin/mainconforme política. - Corrigir emergência:
git switch hotfix, aplicar correção,git cherry-pickse necessário. - Desfazer com segurança:
git revertpara histórico público;git resetougit restorepara trabalho local.
