Folha de Comandos Git
Git é um sistema de controle de versão distribuído de código aberto, capaz de lidar com a gestão de versões de projetos de pequenas a grandes dimensões com rapidez e eficiência. Foi desenvolvido por Linus Torvalds para facilitar a gestão do desenvolvimento do kernel do Linux.
Fundamentos do Git
git init <diretório>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 numa máquina remota via HTTP ou SSH.
git config user.name <nome>Define o nome do autor para todos os commits no repositório atual.
git add <diretório>Adiciona as alterações no <diretório> para o próximo commit.
git commit -m "<mensagem>"Faz o commit do instantâneo da área de preparação, usando a <mensagem> como descrição do commit.
git statusLista quais arquivos estão preparados (staged), não preparados (unstaged) e não rastreados (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 (antes do git add) e a área de preparação (depois do git add).
Cancelar Modificações
git revert <commit>Cria um novo commit que anula todas as alterações feitas no <commit> e as aplica à ramificação atual.
git reset <arquivo>Remove o <arquivo> da área de preparação, mas mantém o diretório de trabalho inalterado. Isso desfaz a preparação do arquivo sem sobrescrever nenhuma alteração.
git clean -nExibe quais arquivos serão removidos do diretório de trabalho. Use o sinalizador -f em vez de -n para executar a limpeza.
Reescrever o Histórico do Git
git commit --amendModifica o evento de commit mais recente. Se houver alterações pendentes no diretório de trabalho, ao usar este comando, as alterações mais recentes do diretório também serão incluídas no commit.
git rebase <base>Redefine a ramificação atual para a <base>. A <base> pode ser um ID de commit, nome de ramificação, tag ou HEAD.
git reflogPermite visualizar todos os registros de operações em todas as ramificações (incluindo commits excluídos e operações de reset).
Ramificações Git (Branches)
git branchLista todas as ramificações. Adicione um parâmetro <branch> para criar uma nova ramificação com esse nome.
git checkout -b <branch>Cria e entra numa nova ramificação chamada <branch>. Remova o -b para entrar numa ramificação existente.
git merge <branch>Mescla a ramificação <branch> na ramificação atual.
Repositórios Remotos
git remote add <nome> <url>Adiciona um novo repositório remoto. Após adicionar, pode usar o <nome> como um atalho para a <url> em outros comandos.
git fetch <remote> <branch>Obtém todas as atualizações da ramificação especificada do repositório remoto, mas não as mescla com a ramificação local.
git pull <remote>Obtém a cópia remota especificada da ramificação atual e a mescla imediatamente com a cópia local.
git push <remote> <branch>Envia a ramificação para o <remote>, juntamente com os commits e objetos necessários. Se a ramificação não existir no repositório remoto, ela será criada.
git config
git config --global user.name <nome>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.<nome-do-alias> <comando-git>Cria um atalho (alias) para um comando Git.
git config --system core.editor <editor>Define o editor de texto utilizado pelos comandos para todos os usuários no computador.
git config --global --editAbre o arquivo de configuração global num editor de texto para edição manual.
git log
git log -<limite>Exibe <limite> entradas do histórico de commits.
git log --onelineExibe o histórico de commits, condensando cada commit em uma única linha.
git log -pExibe o histórico de commits juntamente com a diferença (diff) completa de cada commit.
git log --statExibe o histórico de commits, incluindo quais arquivos foram modificados e o número relativo de linhas adicionadas ou removidas de cada arquivo.
git log --author="<padrao>"Pesquisa commits de um autor específico.
git log --grep="<padrao>"Pesquisa o histórico de commits usando expressões regulares.
git log <desde>..<ate>Exibe os commits que ocorreram entre <desde> e <ate>.
git log -- <arquivo>Exibe apenas os registros de commits que contêm o arquivo especificado.
git diff
git diff HEADCompara as diferenças de arquivos entre o diretório de trabalho (antes do git add) e o repositório (após o git commit).
git diff --cachedCompara as diferenças entre a área de preparação (após o git add) e ο repositório (após ο 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 a área de preparação e o diretório de trabalho para o commit mais recente, descartando todas as alterações no diretório de trabalho.
git reset <commit>Move o ponteiro da ramificação atual de volta para o <commit> e redefine a área de preparação, mas sem alterar o diretório de trabalho.
git reset --hard <commit>O mesmo que o 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 o <commit>.
git pull
git pull --rebase <remote>Obtém a cópia remota da ramificação atual e faz o rebase sobre a cópia local. Usa o git rebase em vez de merge para integrar a ramificação.
git push
git push <remote> --forceForça o envio (push).
git push <remote> --allEnvia todas as ramificações locais para o remoto especificado.
git push <remote> --tagsEnvia todas as tags locais para o repositório remoto.