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 status

git status -sb

Saida curta e objetiva, ideal para rotina diaria.

git status -sb

git diff --name-only

Lista apenas nomes de arquivos alterados, sem mostrar o patch.

git diff --name-only

Combinacao util

Primeiro veja o panorama, depois aprofunde no arquivo especifico.

git status -sb
git diff --name-only
git diff caminho/do/arquivo

Leitura de historico com log

git log

Historico completo com autor, data, hash e mensagem.

git log

git log --oneline

Historico compacto para navegacao rapida de commits.

git log --oneline

Filtros comuns

git log --oneline -n 10
git log --author="Seu Nome"
git log -- caminho/do/arquivo

Comparar duas refs

git log --oneline main..feature/minha-branch

Conventional commits

  • feat: nova funcionalidade
  • fix: correcao de bug
  • docs: documentacao
  • style: formatacao sem mudar logica
  • refactor: refatoracao
  • chore: 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

  1. git fetch --all
  2. git branch -a
  3. git checkout -b nome origin/nome

Sumiu de tudo (reflog)

  1. git reflog
  2. Encontre o hash desejado
  3. git checkout -b nome HASH

Checkout bloqueado

  1. git stash
  2. Faca checkout/pull
  3. 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

ComandoAcao
git initInicia repositorio
git clone URLClona repositorio remoto
git statusMostra estado atual
git status -sbStatus curto com branch atual
git diff --name-onlyLista so nomes de arquivos alterados
git logHistorico completo de commits
git log --onelineHistorico simplificado
git reflogHistorico de acoes locais
git stashGuarda alteracoes temporariamente
git diffDiferencas nao staged
git commit -m "msg"Salva alteracoes
git pushEnvia commits
git pullBaixa e mescla
git branchLista branches
git checkout branchTroca de branch
git merge branchFunde branch