Git & GitHub: cheatsheet essencial
Guia focado em comandos, fluxo de trabalho e padroes.
Setup e seguranca (Windows)
Configuracao inicial
Ao pegar uma maquina nova, defina o autor dos commits.
# 1. Definir identidade (global)
git config --global user.name "Seu Nome"
git config --global user.email "email@ex.com"
# 2. Verificar configuracoes existentes
git config --list
# 3. Ver onde as configs estao salvas
git config --list --show-origin
Limpeza (sair do PC)
Vai devolver o computador? Remova seus dados locais.
# 1. Remover nome e email do Git
git config --global --unset user.name
git config --global --unset user.email
Critico: no Windows, remova tambem a credencial
git:https://github.com no Gerenciador de Credenciais.
Status dos arquivos (significados)
- ?? untracked
- A added
- M modified
- D deleted
- R renamed
- C copied
Leitura rapida de status e diff
git status
Mostra detalhes completos da arvore de trabalho e da area de stage.
git statusgit status -sb
Saida curta e objetiva, ideal para rotina diaria.
git status -sbgit diff --name-only
Lista apenas nomes de arquivos alterados, sem mostrar o patch.
git diff --name-onlyCombinacao util
Primeiro veja o panorama, depois aprofunde no arquivo especifico.
git status -sb
git diff --name-only
git diff caminho/do/arquivoLeitura de historico com log
git log
Historico completo com autor, data, hash e mensagem.
git loggit log --oneline
Historico compacto para navegacao rapida de commits.
git log --onelineFiltros comuns
git log --oneline -n 10
git log --author="Seu Nome"
git log -- caminho/do/arquivoComparar duas refs
git log --oneline main..feature/minha-branchConventional commits
feat: nova funcionalidadefix: correcao de bugdocs: documentacaostyle: formatacao sem mudar logicarefactor: refatoracaochore: manutencao
Para breaking change, use
! no tipo: feat!:
Fluxo de trabalho padrao
Bash
# 1. Atualizar a main
git checkout main
git pull origin main
# 2. Criar branch
git checkout -b feature/nova-funcionalidade
# 3. Adicionar e commitar
git add .
git commit -m "feat: adiciona carrossel de imagens"
# 4. Push
git push origin feature/nova-funcionalidade
# 5. Limpeza local
git checkout main
git pull origin main
git branch -d feature/nova-funcionalidade
WIP (troca de PC)
Savepoint temporario para continuar em outra maquina sem fechar a tarefa.
No PC 1 (origem)
git checkout -b backup-temporario
git add .
git commit -m "WIP: backup para troca de pc"
git push origin backup-temporario
No PC 2 (destino)
git fetch origin
git checkout backup-temporario
git reset --soft HEAD~1
Resultado: commit temporario removido e arquivos continuam staged.
SOS: recuperacao
Existe no remoto
git fetch --allgit branch -agit checkout -b nome origin/nome
Sumiu de tudo (reflog)
git reflog- Encontre o hash desejado
git checkout -b nome HASH
Checkout bloqueado
git stash- Faca checkout/pull
git stash pop
Correcoes e desfazendo
Desfazer git add
git restore --staged arquivo.txt
git restore --staged .
Editar ultimo commit
Altera mensagem ou adiciona arquivos esquecidos sem criar novo commit.
git add arquivo-esquecido.txt
git commit --amend
Commits antigos
Antes do push:
git rebase -i HEAD~3
# troque 'pick' por 'reword' nos commits desejados
Depois do push (use com cuidado):
git commit --amend
git push --force
Gerenciamento de branches
Deletar
git branch -d nome-branch
git branch -D nome-branch
git push origin --delete nome-branch
Renomear
Voce pode renomear uma branch local sem entrar nela.
git branch -m novo-nome
git branch -m antigo novo
git push origin -u novo
git push origin --delete antigo
Git no VS Code
- Ctrl + Shift + G abrir Source Control
- Ctrl + Shift + G G commit rapido
- Ctrl + Shift + G P push
- Ctrl + Shift + G U pull
Resumo de comandos
| Comando | Acao |
|---|---|
git init | Inicia repositorio |
git clone URL | Clona repositorio remoto |
git status | Mostra estado atual |
git status -sb | Status curto com branch atual |
git diff --name-only | Lista so nomes de arquivos alterados |
git log | Historico completo de commits |
git log --oneline | Historico simplificado |
git reflog | Historico de acoes locais |
git stash | Guarda alteracoes temporariamente |
git diff | Diferencas nao staged |
git commit -m "msg" | Salva alteracoes |
git push | Envia commits |
git pull | Baixa e mescla |
git branch | Lista branches |
git checkout branch | Troca de branch |
git merge branch | Funde branch |