Comandos Essenciais do Git
Os comandos do dia a dia que todo desenvolvedor usa - staging, commit, branching e inspeção de histórico.
Busque em todas as páginas da documentação
Os comandos do dia a dia que todo desenvolvedor usa - staging, commit, branching e inspeção de histórico.
🤖 Read the SystemsArchitect.io Blog for over 100+ cloud architecture articles 🔥
Cartão de referência rápida - pronto para copiar e colar.
# Initialize a new repo
git init
# Check current status
git status
# Stage specific files
git add file1.tsx file2.tsx
# Stage all changes
git add .
# Commit with message
git commit -m "feat: add user profile component"
# View commit history
git log --oneline --graph
# Create and switch to a new branch
git checkout -b feature/new-component
# Switch to existing branch
git checkout main
# or (modern)
git switch mainQuando usar isso: Toda vez que você escreve código. Estes comandos são a base de todos os fluxos de trabalho do Git.
# Typical feature development workflow
git checkout -b feature/auth-page
# ... write code ...
git status
git add src/app/auth/page.tsx src/app/auth/layout.tsx
git commit -m "feat: add authentication page with login form"
git push -u origin feature/auth-pageO que isso demonstra:
git add . sempre que possível)A área de staging é o passo intermediário exclusivo do Git entre seu diretório de trabalho e o repositório.
# Stage specific files
git add src/components/Button.tsx
# Stage parts of a file (interactive hunk selection)
git add -p src/components/Button.tsx
# Unstage a file (keep changes in working directory)
git restore --staged src/components/Button.tsx
# Discard changes in working directory
git restore src/components/Button.tsx# Conventional commit prefixes
git commit -m "feat: add dark mode toggle"
git commit -m "fix: resolve hydration mismatch in sidebar"
git commit -m "refactor: extract shared form validation logic"
git commit -m "docs: update API route documentation"
git commit -m "chore: upgrade next to 15.1.0"
git commit -m "test: add integration tests for checkout flow"
# Multi-line commit message
git commit -m "feat: add user dashboard
- Add profile summary card
- Add recent activity feed
- Add quick action buttons"# Compact log with graph
git log --oneline --graph --all
# Show changes in a specific commit
git show abc1234
# Show who last modified each line
git blame src/app/layout.tsx
# Search commit messages
git log --grep="auth" --oneline
# Show commits that changed a specific file
git log --oneline -- src/app/auth/page.tsx
# Show diff between branches
git diff main..feature/auth-page# List all branches (local)
git branch
# List all branches (including remote)
git branch -a
# Create a branch without switching
git branch feature/sidebar
# Delete a merged branch
git branch -d feature/sidebar
# Delete an unmerged branch (force)
git branch -D feature/abandoned
# Rename current branch
git branch -m new-nameCoisas que vão te morder. Cada armadilha inclui o que dá errado, por que acontece e a correção.
Committing no branch errado - Você escreve código no main em vez de um branch de recurso. Correção: git stash, depois git checkout -b feature/branch-correto, depois git stash pop.
Esquecer de dar pull antes de push - O push é rejeitado porque o remoto tem novos commits. Correção: git pull --rebase para reaplicar seus commits no topo das últimas alterações remotas.
Adicionar segredos acidentalmente ao staging - Arquivos .env ou credenciais são adicionados ao staging. Correção: git restore --staged .env antes de commitar. Adicione .env ao .gitignore imediatamente.
Estado de Detached HEAD - Você fez checkout de um hash de commit em vez de um nome de branch. Correção: git checkout -b meu-branch para criar um branch nesse commit, ou git checkout main para voltar.
Arquivos grandes inchando o repositório - Commitar node_modules ou artefatos de build. Correção: Adicione-os ao .gitignore antes do primeiro commit. Se já foi committado, use git rm -r --cached node_modules.
Outras maneiras de resolver o mesmo problema - e quando cada uma é a melhor escolha.
| Alternativa | Use Quando | Não Use Quando |
|---|---|---|
git switch / git restore | Git moderno (2.23+) - intenção mais clara que checkout | Versões mais antigas do Git ou memória muscular |
git stash | Troca rápida de contexto sem commitar trabalho em andamento | Você quer um registro permanente do estado do trabalho em andamento |
git worktree | Trabalhar em dois branches simultaneamente | Fluxos de trabalho simples de um único branch |
git add . faz o staging de todas as alterações no diretório atual e subdiretóriosgit add file.tsx faz o staging apenas desse arquivo específico.env)git switch foi introduzido no Git 2.23+ para clarificar a intenção de troca de branchgit checkout é sobrecarregado: ele troca branches E restaura arquivosgit switch para branches, git restore para arquivos, se sua versão do Git os suportargit reset --soft HEAD~1--soft mantém as alterações em staging--mixed (padrão) mantém as alterações mas as desfaz o staging--hard descarta as alterações completamente (perigoso)feat:, fix:, refactor:, docs:, chore:, test: categorizam as alteraçõesgit show abc1234--stat para um resumo dos arquivos alterados em vez do diff completogit filter-branch ou git filter-repo para remover o arquivo do histórico.env ao .gitignore para prevenir acidentes futurosgit add -p só funciona em arquivos rastreados (arquivos já conhecidos pelo Git)git add file.tsx, então você pode usar -p em alterações subsequentesgit branch -d feature/my-branch-d deleta apenas se o branch foi mesclado-D força a deleção mesmo de branches não mesclados (use com cautela)git checkout -b meu-novo-branch para criar um branch no commit atualgit log --grep="auth" --oneline--grep filtra pelo conteúdo da mensagem de commit--all para procurar em todos os branches*.tsbuildinfo ao seu .gitignorenpx tsc --noEmit--noEmit verifica tipos sem produzir arquivos de saídaRevisado por Chris St. John·Última atualização: 19 de jul. de 2026
🤖 Read the SystemsArchitect.io Blog for over 100+ cloud architecture articles 🔥