Cheat sheet de comandos Git comummente utilizados
Introduza o nome do comando no campo de pesquisa ou filtre por categoria (operações básicas, branches, etc.) para encontrar o comando desejado.
Confira a descrição de cada comando, opções comuns e exemplos práticos de utilização.
Clique no exemplo de utilização para copiar para a área de transferência e executar imediatamente no terminal.
git add .Adiciona todas as alterações ao staginggit add -pSeleciona interativamente alterações para staginggit add file.txtAdiciona um ficheiro específico ao staginggit commit -m "feat: add new feature"Commit com mensagemgit commit --amendAdiciona modificações ao commit anteriorgit commit -am "fix: bug fix"Staging automático e commitgit statusVerifica o estado atualgit status -sbApresenta formato curto com informações do branchgit diffApresenta alterações não em staginggit diff --stagedApresenta alterações em staginggit diff HEAD~1Apresenta diferença com o commit anteriorgit log --onelineApresenta histórico em formato de uma linhagit log --oneline --graphApresenta histórico com gráficogit log -5Apresenta os últimos 5 commitsgit push origin mainPush do branch main para origingit push -u origin featurePush de novo branch e define upstreamgit push --force-with-leasePush forçado segurogit pullObtém alterações remotas e faz mergegit pull --rebaseIncorpora com rebasegit pull origin mainPull do branch main do origingit fetch originObtém alterações do origingit fetch --allObtém de todos os remotosgit fetch --pruneLimpa branches excluídosgit branchLista branches locaisgit branch feature/newCria novo branchgit branch -d feature/oldElimina branch já mergedgit checkout mainAlterna para o branch maingit checkout -b feature/newCria novo branch e alternagit checkout -- file.txtRestaura ficheiro para o último commitgit switch mainAlterna para o branch maingit switch -c feature/newCria novo branch e alternagit switch -Volta para o branch anteriorgit merge feature/newMerge do feature/newgit merge --no-ff feature/newSempre cria commit de mergegit merge --abortAborta merge em caso de conflitogit rebase mainRebase no branch maingit rebase -i HEAD~3Edita os últimos 3 commitsgit rebase --abortAborta rebase e volta ao estado originalgit showApresenta detalhes do último commitgit show HEAD~1Apresenta o commit anteriorgit show abc1234Apresenta um commit específicogit blame file.txtApresenta o autor de cada linha do ficheirogit blame -L 10,20 file.txtApresenta autores das linhas 10 a 20git blame -w file.txtApresenta ignorando alterações de espaçosgit reflogApresenta histórico de movimentos do HEADgit reflog -10Apresenta os últimos 10 itens do históricogit checkout HEAD@{2}Utiliza reflog para voltar a estado anteriorgit shortlog -snLista utilizadores ordenados por commitsgit shortlog -sneApresenta com endereço de e-mailgit shortlog HEAD~100..HEADContribuidores dos últimos 100 commitsgit reset --soft HEAD~1Desfaz o último commit (mantém alterações)git reset HEAD file.txtRemove ficheiro específico do staginggit reset --hard HEAD~1Descarta último commit e alteraçõesgit revert HEADReverte o último commitgit revert abc1234Reverte um commit específicogit revert -n HEAD~3..HEADReverte múltiplos commits juntosgit restore file.txtRestaura ficheiro para o último commitgit restore --staged file.txtRemove do staginggit restore --source HEAD~1 file.txtRestaura do commit anteriorgit clean -nPré-visualização dos ficheiros a eliminargit clean -fdElimina ficheiros e diretórios não rastreadosgit clean -fdxTambém elimina ficheiros ignoradosgit stashGuarda alterações temporariamentegit stash popRestaura alterações guardadasgit stash listLista stashesgit remote -vLista repositórios remotosgit remote add upstream https://github.com/user/repo.gitAdiciona remoto upstreamgit remote rename origin old-originRenomeia remotogit config --global user.name "Your Name"Define nome de utilizadorgit config --global user.email "you@example.com"Define endereço de e-mailgit config --listLista configuraçõesgit initTransforma diretório atual em repositóriogit init my-projectCria repositório em novo diretóriogit init -b mainInicializa com branch maingit clone https://github.com/user/repo.gitClona repositóriogit clone --depth 1 https://github.com/user/repo.gitClona apenas último commitgit clone -b develop https://github.com/user/repo.gitClona branch developgit tag v1.0.0Cria tag levegit tag -a v1.0.0 -m "Release 1.0.0"Cria tag anotadagit tag -d v1.0.0Elimina taggit cherry-pick abc1234Aplica commit específicogit cherry-pick abc1234 def5678Aplica múltiplos commitsgit cherry-pick --abortAborta cherry-pickgit bisect startInicia pesquisa bináriagit bisect bad HEADMarca HEAD atual como maugit bisect good v1.0.0Marca v1.0.0 como bomgit grep "TODO"Pesquisa linhas contendo TODOgit grep -n "function"Pesquisa com números de linhagit grep -l "import"Apresenta apenas nomes de ficheiros correspondentesA Referência de comandos Git é um cheat sheet que reúne comandos Git comummente utilizados. Cobre desde operações básicas até operações de branch, histórico e desfazer, com comandos necessários para desenvolvimento. Pode verificar a descrição de cada comando, opções comuns e exemplos práticos, com cópia num clique.
git fetch apenas obtém alterações remotas localmente, sem afetar o branch de trabalho. git pull faz merge ou rebase automaticamente após fetch, incorporando alterações ao branch de trabalho.
git reset reescreve o histórico de commits para voltar a um estado anterior. git revert cria um novo commit de reversão, mantendo o histórico. revert é mais seguro para branches partilhados.
switch é um comando novo adicionado no Git 2.23, dedicado apenas à alternância de branches. checkout pode alternar branches e restaurar ficheiros, mas os papéis são misturados. A utilização dos novos comandos (switch/restore) é recomendada.
--force faz push forçado incondicionalmente, enquanto --force-with-lease só faz push se o remoto estiver no estado esperado. Reduz o risco de sobrescrever acidentalmente alterações de outras pessoas.
Utilizando git reflog, pode verificar o histórico de movimentos do HEAD. Encontre o hash do commit eliminado e pode ser possível recuperar utilizando git checkout ou git cherry-pick.