Skip to content

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 status

Lista quais arquivos estão preparados (staged), não preparados (unstaged) e não rastreados (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 (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 -n

Exibe 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 --amend

Modifica 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 reflog

Permite 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 branch

Lista 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 --edit

Abre 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 --oneline

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

git log -p

Exibe o histórico de commits juntamente com a diferença (diff) completa de 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 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 HEAD

Compara 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 --cached

Compara as diferenças entre a área de preparação (após o git add) e ο repositório (após ο 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 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> --force

Força o envio (push).

git push <remote> --all

Envia todas as ramificações locais para o remoto especificado.

git push <remote> --tags

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