Todas as ferramentas
Gratuito

Uma referência Git pesquisável e imprimível — configuração, branches, merge, rebase, remotos, stash, tags e desfazer alterações. Grátis.

Configuração e config

10
git config --global user.name "Jane Doe"
Define o nome associado aos seus commits
git config --global user.email "jane@example.com"
Define o e-mail associado aos seus commits
git config --global init.defaultBranch main
Faz novos repositórios começarem no branch "main"
git config --global core.editor "code --wait"
Usa o VS Code como editor padrão do Git
git config --global pull.rebase true
Faz rebase em vez de merge ao puxar
git config --global alias.co checkout
Cria um alias de atalho (git co)
git config --global --list
Lista todos os valores de configuração globais
git config user.email
Mostra o e-mail do repositório atual
git config --global color.ui auto
Ativa saída colorida na linha de comando
git help <command>
Abre a página de manual de um comando

Criar e clonar repositórios

9
git init
Inicializa um novo repositório na pasta atual
git init my-project
Cria um novo repositório num novo diretório
git clone https://example.com/repo.git
Clona um repositório remoto via HTTPS
git clone git@example.com:user/repo.git
Clona um repositório remoto via SSH
git clone <url> my-dir
Clona para um nome de diretório específico
git clone --depth 1 <url>
Clone superficial só com o último commit
git clone --branch dev <url>
Clona e faz checkout de um branch específico
git clone --recurse-submodules <url>
Clona e inicializa todos os submódulos
git remote add origin <url>
Associa um remoto a um repositório local existente

Staging e commits

11
git add file.txt
Adiciona um único ficheiro ao próximo commit
git add .
Adiciona todas as alterações do diretório atual
git add -A
Adiciona todas as alterações, incluindo exclusões
git add -p
Adiciona trechos selecionados interativamente
git commit -m "Add login form"
Faz commit das alterações em stage com mensagem
git commit -am "Fix typo"
Adiciona ficheiros rastreados e faz commit num só passo
git commit --amend
Edita o commit mais recente
git commit --amend --no-edit
Adiciona alterações em stage ao último commit
git rm file.txt
Remove um ficheiro e adiciona a exclusão ao stage
git mv old.txt new.txt
Renomeia ou move um ficheiro e adiciona ao stage
git reset file.txt
Tira do stage um ficheiro mantendo as alterações

Branches

10
git branch
Lista todos os branches locais
git branch -a
Lista branches locais e de rastreamento remoto
git switch -c feature/login
Cria um novo branch e muda para ele
git switch main
Muda para um branch existente
git checkout -b hotfix
Forma clássica de criar e mudar de branch
git branch -m old-name new-name
Renomeia um branch
git branch -d feature/login
Apaga um branch local já mesclado
git branch -D feature/login
Força a exclusão de um branch local não mesclado
git push origin --delete feature/login
Apaga um branch no remoto
git switch -
Volta ao branch anterior

Merge e rebase

10
git merge feature/login
Mescla um branch no atual
git merge --no-ff feature/login
Mescla criando sempre um commit de merge
git merge --squash feature/login
Combina um branch numa única alteração em stage
git merge --abort
Cancela um merge com conflitos
git rebase main
Reaplica os commits do branch atual sobre main
git rebase -i HEAD~3
Edita interativamente os últimos 3 commits
git rebase --continue
Retoma um rebase após resolver conflitos
git rebase --abort
Cancela um rebase em andamento
git cherry-pick <hash>
Aplica um único commit no branch atual
git mergetool
Abre uma ferramenta para resolver conflitos de merge

Remotos e sincronização

11
git remote -v
Lista os remotos configurados e suas URLs
git remote add upstream <url>
Adiciona um segundo remoto chamado upstream
git remote set-url origin <url>
Altera a URL de um remoto existente
git fetch
Baixa alterações remotas sem mesclar
git fetch --all --prune
Faz fetch de todos os remotos e remove branches obsoletos
git pull
Faz fetch e integra alterações remotas
git pull --rebase
Faz pull e rebase dos commits locais por cima
git push
Envia commits locais para o remoto
git push -u origin main
Faz push e define o branch de rastreamento upstream
git push --force-with-lease
Força push com segurança sem sobrescrever os outros
git push origin --tags
Envia todas as tags locais para o remoto

Inspecionar e comparar

10
git status
Mostra ficheiros em stage, fora de stage e não rastreados
git status -s
Mostra o status em formato curto e compacto
git diff
Mostra alterações fora de stage face ao índice
git diff --staged
Mostra alterações em stage para o próximo commit
git diff main..feature
Compara dois branches
git diff HEAD~1 HEAD
Compara o último commit com o seu pai
git show <hash>
Mostra os detalhes e o diff de um commit
git show HEAD:file.txt
Mostra um ficheiro como estava num commit
git log --stat
Mostra commits com resumos dos ficheiros alterados
git shortlog -sn
Conta commits agrupados por autor

Desfazer alterações

10
git restore file.txt
Descarta alterações fora de stage num ficheiro
git restore --staged file.txt
Tira do stage um ficheiro mantendo as alterações
git restore --source=HEAD~1 file.txt
Restaura um ficheiro de um commit anterior
git checkout -- file.txt
Forma clássica de descartar alterações locais
git reset --soft HEAD~1
Desfaz o último commit, mantém alterações em stage
git reset --mixed HEAD~1
Desfaz o último commit, mantém alterações fora de stage
git reset --hard HEAD~1
Desfaz o último commit e descarta alterações
git revert <hash>
Cria um novo commit que reverte um commit
git clean -fd
Apaga ficheiros e diretórios não rastreados
git clean -nd
Pré-visualiza o que o clean removeria

Stash

10
git stash
Guarda alterações não commitadas e limpa a árvore
git stash push -m "wip"
Guarda alterações com uma mensagem descritiva
git stash -u
Faz stash incluindo ficheiros não rastreados
git stash list
Lista todos os conjuntos de alterações em stash
git stash show -p
Mostra o diff do stash mais recente
git stash apply
Reaplica o stash mais recente e mantém-no
git stash pop
Reaplica o stash mais recente e remove-o
git stash apply stash@{2}
Reaplica um stash específico por índice
git stash drop stash@{0}
Apaga uma única entrada de stash
git stash clear
Apaga todas as entradas de stash

Tags

9
git tag
Lista todas as tags
git tag v1.0.0
Cria uma tag leve em HEAD
git tag -a v1.0.0 -m "Release 1.0.0"
Cria uma tag anotada com mensagem
git tag -a v1.0.0 <hash>
Cria uma tag num commit passado específico
git show v1.0.0
Mostra os detalhes de uma tag
git push origin v1.0.0
Envia uma única tag para o remoto
git push origin --tags
Envia todas as tags locais para o remoto
git tag -d v1.0.0
Apaga uma tag localmente
git push origin --delete v1.0.0
Apaga uma tag no remoto

Logs e histórico

12
git log
Mostra o histórico completo de commits
git log --oneline
Mostra um log compacto, uma linha por commit
git log --oneline --graph --all
Visualiza os branches como um grafo ASCII
git log -p
Mostra o histórico de commits com diffs
git log --author="Jane"
Filtra o histórico por autor
git log --since="2 weeks ago"
Filtra o histórico por intervalo de datas
git log --pretty=format:"%h %an %s"
Personaliza o formato de saída do log
git blame file.txt
Mostra quem alterou cada linha por último
git reflog
Mostra o histórico de onde HEAD esteve
git bisect start
Inicia uma busca binária por um commit defeituoso
git bisect good <hash>
Marca um commit como bom durante o bisect
git bisect bad
Marca o commit atual como defeituoso

Nenhuma entrada corresponde a “:q”.


Precisa de ajuda?
Encontrou um problema com esta ferramenta? Avise a nossa equipa.
Relatar um problema

Adicione esta ferramenta gratuita ao seu próprio site — copie e cole o código abaixo.