Skip to content

Comandos Git explicados

Os comandos Git que realmente usa, agrupados por tarefa: criar um repositório, tirar snapshots, criar ramos e fundir, ler o histórico, partilhar com um remoto, desfazer erros, guardar trabalho em stash e gerir ficheiros e submódulos. Cada linha emparelha o comando com uma invocação realista.

O Git tem centenas de comandos, mas o trabalho diário precisa de poucos. O modelo mental: a árvore de trabalho são os seus ficheiros, o índice (área de staging) é o próximo commit, e o HEAD é o commit atual. Encena, faz commit, partilha. Leia o status com frequência.

Tabela de referência · 55 entradas
55 of 55 rows
Configuração e definições
Define a identidade e as preferências do Git.git config --global user.name "Ada"
Cria um atalho pessoal para um comando longo.git config --global alias.co checkout
Cria um repositório Git novo na pasta atual.git init
Copia um repositório remoto completo para a sua máquina.git clone git@github.com:org/repo.git
Copia um repositório remoto completo para a sua máquina.git clone --depth 1 --single-branch git@github.com:org/repo.git
Bases de snapshot
Mostra o estado da árvore de trabalho e do índice.git status -sb
Coloca ficheiros no índice para o próximo commit.git add src/app.ts
Encena os ficheiros por pedaços, decidindo bloco a bloco.git add -p src/app.ts
Encena todas as alterações de ficheiros já seguidos.git add -u
Grava o índice como um commit novo.git commit -m "fix: null check"
Reescreve o último commit com o índice atual.git commit --amend -m "fix: handle empty input"
Mostra alterações não encenadas.git diff --staged
Mostra tudo o que mudou desde o último commit.git diff HEAD
Ramos e fusão
Lista ramos locais.git branch feature-x
Lista ramos locais.git branch -d feature-x
Muda para outro ramo.git switch feature-x
Cria um ramo novo e muda para ele.git switch -c feature-x
Muda de ramo ou restaura ficheiros (forma antiga do switch/restore).git checkout feature-x
Une outro ramo no ramo atual.git merge feature-x
Cancela uma fusão em conflito e volta ao estado anterior.git merge --abort
Reaplica os seus commits por cima de outro ramo.git rebase main
Reordena, junta ou edita commits durante o rebase.git rebase -i main
Copia um commit isolado de outro ramo para o atual.git cherry-pick a1b2c3d
Marca um commit com um nome imutável.git tag -a v1.2.0
Gerencia várias árvores de trabalho ligadas ao mesmo repositório.git worktree add ../repo-feature feature-x
Inspecionar o histórico
Mostra o histórico de commits.git log --oneline --graph --decorate
Mostra o histórico de commits.git log --oneline --graph --all
Mostra um commit: mensagem, autor e diferença.git show HEAD
Diz quem alterou cada linha e em que commit.git blame src/app.ts
Mostra todos os sítios onde o HEAD esteve, incluindo perdidos.git reflog
Procura binariamente o commit que introduziu um defeito.git bisect start
Sumariza commits por autor.git shortlog -sn
Nomea o commit atual relativo à etiqueta mais próxima.git describe --tags
Colaboração remota
Gerencia os remotos do repositório.git remote add origin <url>
Lista os remotos com os URLs.git remote -v
Trás objetos do remoto sem tocar na árvore de trabalho.git fetch origin
Trás do remoto e apaga referências a ramos já removidos.git fetch --prune
Faz fetch e integra o ramo remoto no atual.git pull --rebase
Envia commits para o remoto.git push -u origin feature-x
Força o envio só se ninguém enviou primeiro.git push --force-with-lease origin feature-x
Desfazer alterações
Descarta alterações de ficheiros da árvore de trabalho.git restore src/app.ts
Descarta alterações de ficheiros da árvore de trabalho.git restore --staged src/app.ts
Move o ramo atual para outro commit, ajustando o índice.git reset --hard HEAD~1
Cria um commit que desfaz outro commit.git revert HEAD
Apaga ficheiros não seguidos.git clean -fd
Stash
Guarda alterações em curso e limpa a árvore de trabalho.git stash -u
Lista os stashes guardados.git stash list
Reaplica um stash sem o apagar da lista.git stash apply stash@{1}
Guarda alterações em curso e limpa a árvore de trabalho.git stash drop stash@{1}
Reaplica o stash mais recente e remove-o da lista.git stash pop
Ficheiros e submódulos
Move ou renomeia um ficheiro mantendo o histórico.git mv old.ts src/new.ts
Remove ficheiros do repositório e da árvore de trabalho.git rm src/old.ts
Gerencia submódulos: repositórios dentro do repositório.git submodule add git@github.com:org/lib.git lib
Limita a árvore de trabalho a um subconjunto de pastas.git sparse-checkout set src docs
Exporta uma árvore de ficheiros como arquivo tar ou zip.git archive -o repo.zip HEAD