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 statusLista quais arquivos estão preparados (staged), não preparados e não monitorados (untracked).
git logExibe todo o histórico de commits usando o formato padrão.
git diffCompara 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 -nMostra 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 --amendModifica 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 reflogPermite 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 branchLista 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 --editAbre 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 --onelineExibe o histórico de commits, compactando cada commit em uma única linha.
git log -pExibe o histórico de commits e o diff completo para cada commit.
git log --statExibe 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 HEADCompara 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 --cachedCompara 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 resetRedefine a área de preparação para corresponder ao commit mais recente, mas mantém o diretório de trabalho inalterado.
git reset --hardRedefine 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> --forcePush forçado (Force push).
git push <remote> --allEnvia todos os branches locais para o remoto especificado.
git push <remote> --tagsEnvia todas as tags locais para o repositório remoto.