Skip to content

Folha de Comandos Git (Cheat Sheet)

Git é um sistema de controle de versão distribuído de código aberto que pode lidar com o gerenciamento de versões de projetos de muito pequenos a muito grandes de forma eficiente e em alta velocidade. O Git foi desenvolvido por Linus Torvalds para ajudar a gerenciar o desenvolvimento do kernel do Linux.

Fundamentos do Git

git init <directory>

Cria um repositório Git vazio no diretório especificado. Se executado sem parâmetros, inicializa o diretório atual como um repositório Git.

git clone <repo>

Clona o repositório localizado em <repo> para a máquina local. O repositório original pode estar no sistema de arquivos local ou em uma máquina remota via HTTP ou SSH.

git config user.name <name>

Define o nome do autor a ser usado para todos os commits no repositório atual.

git add <directory>

Adiciona as alterações em <directory> para o próximo commit.

git commit -m "<message>"

Faz o commit do snapshot preparado (staged), usando <message> como a mensagem de commit.

git status

Lista quais arquivos estão preparados (staged), não preparados e não monitorados (untracked).

git log

Exibe todo o histórico de commits usando o formato padrão.

git diff

Compara as diferenças entre o diretório de trabalho (ainda não adicionado com git add) e a área de preparação (após o git add).

Desfazendo Alterações

git revert <commit>

Cria um novo commit que desfaz todas as alterações feitas em <commit> e o aplica ao branch atual.

git reset <file>

Remove <file> da área de preparação, mas mantém o diretório de trabalho inalterado. Isso remove o arquivo da preparação sem sobrescrever nenhuma alteração.

git clean -n

Mostra quais arquivos serão removidos do diretório de trabalho. Use a flag -f em vez da flag -n para realizar a limpeza.

Reescrevendo o Histórico

git commit --amend

Modifica o evento de commit Git mais recente. Se o diretório de trabalho tiver alterações para commit, essas alterações também serão incluídas ao usar o comando git commit –amend.

git rebase <base>

Redefine o branch atual para <base>. <base> pode ser um ID de commit, nome de branch, tag ou HEAD.

git reflog

Permite visualizar todos os registros de operações de todos os branches (incluindo registros de commit excluídos e operações de reset).

Branches Git

git branch

Lista todos os branches. Adicione um parâmetro <branch> para criar um novo branch chamado <branch>.

git checkout -b <branch>

Cria e alterna para um novo branch chamado <branch>. Omita -b para alternar para um branch existente.

git merge <branch>

Funde o branch <branch> no branch atual.

Repositórios Remotos

git remote add <name> <url>

Adiciona un novo repositório remoto. Após adicionar o remoto, você pode usar <name> como um atalho para <url> em outros comandos.

git fetch <remote> <branch>

Busca todas as atualizações do <branch> especificado do repositório, mas não as funde com o branch local.

git pull <remote>

Busca a cópia remota especificada do branch atual e a funde imediatamente com a cópia local.

git push <remote> <branch>

Envia o branch para o <remote>, junto com os commits e objetos necessários. Se o repositório remoto não existir, um branch nomeado é criado no repositório remoto.

git config

git config --global user.name <name>

Define o nome do autor para todos os commits do usuário atual.

git config --global user.email <email>

Define o e-mail do autor para todos os commits do usuário atual.

git config --global alias.<alias-name> <git-command>

Cria um atalho (alias) para um comando Git.

git config --system core.editor <editor>

Define o editor de texto usado pelos comandos para todos os usuários no computador.

git config --global --edit

Abre o arquivo de configuração global em um editor de texto para edição manual.

git log

git log -<limit>

Exibe os últimos <limit> registros do histórico de commits.

git log --oneline

Exibe o histórico de commits, compactando cada commit em uma única linha.

git log -p

Exibe o histórico de commits e o diff completo para cada commit.

git log --stat

Exibe o histórico de commits, incluindo quais arquivos foram modificados e o número relativo de linhas adicionadas ou excluídas de cada arquivo.

git log --author="<pattern>"

Busca commits de um autor específico.

git log --grep="<pattern>"

Busca no histórico de commits usando correspondência de expressão regular.

git log <since>..<until>

Exibe commits que ocorreram entre <since> e <until>.

git log -- <file>

Exibe apenas registros de commit que contêm o arquivo especificado.

git diff

git diff HEAD

Compara diferenças entre o diretório de trabalho (ainda não adicionado com git add) e o repositório (após o git commit).

git diff --cached

Compara diferenças entre a área de preparação (após o git add) e o repositório (após o git commit).

git reset

git reset

Redefine a área de preparação para corresponder ao commit mais recente, mas mantém o diretório de trabalho inalterado.

git reset --hard

Redefine tanto a área de preparação quanto o diretório de trabalho para o commit mais recente, sobrescrevendo todas as alterações no diretório de trabalho.

git reset <commit>

Move o ponteiro do branch atual de volta para <commit> e redefine a área de preparação, mas não altera o diretório de trabalho.

git reset --hard <commit>

Igual ao anterior, mas redefine tanto a área de preparação quanto o diretório de trabalho. Exclui alterações não commitadas e todos os commits após <commit>.

git pull

git pull --rebase <remote>

Busca a cópia remota do branch atual e faz o rebase sobre a cópia local. Usa o git rebase em vez do merge para integrar branches.

git push

git push <remote> --force

Push forçado (Force push).

git push <remote> --all

Envia todos os branches locais para o remoto especificado.

git push <remote> --tags

Envia todas as tags locais para o repositório remoto.