Artigo original: Git Cheat Sheet – 50 Git Commands You Should Know

O Git é um sistema de controle de versão distribuído que ajuda desenvolvedores a colaborar em projetos de qualquer dimensão.

Linus Torvalds, criador do Linux, criou o Git em 2005 para ajudar no controle do desenvolvimento do núcleo do Linux.

O que é o controle de versão distribuído?

Um sistema de controle de versão distribuído é um sistema que ajuda você a acompanhar as alterações feitas nos arquivos do seu projeto.

Esse histórico de alterações fica na sua máquina local e permite reverter para uma versão anterior do seu projeto de maneira fácil caso algo dê errado.

O Git facilita a colaboração. Todas as pessoas da equipe podem manter uma cópia completa dos repositórios em que estão trabalhando em sua máquina local. Então, graças a um servidor externo, como BitBucket, GitHub ou GitLab, eles podem armazenar o repositório em um único lugar.

Desse modo, diferentes membros do time podem fazer uma cópia local e todos têm uma visão geral de quaisquer alterações feitas por todos.

O Git possui diversos comandos que você pode usar. Percebi que esses cinquenta são os que uso com mais frequência (portanto, são os mais úteis de se lembrar).

Então, eu escrevi este artigo e pensei que seria interessante compartilhá-lo com a comunidade. Espero que você o ache útil – aproveite.

Como verificar sua configuração do Git:

O comando abaixo retorna uma lista de informações sobre sua configuração do Git, incluindo nome de usuário e e-mail:

git config -l

Como configurar seu nome de usuário do Git:

Com o comando abaixo você pode configurar seu nome de usuário:

git config --global user.name "Fabio"

Como configurar seu e-mail de usuário do Git:

Este comando permite configurar o endereço de e-mail utilizado em seus commits:

git config --global user.email "signups@fabiopacifici.com"

Como armazenar em cache suas credenciais de acesso do Git:

Você pode armazenar suas credenciais de acesso no cache para não precisar digitá-las sempre. Basta usar este comando:

git config --global credential.helper cache

Como inicializar um repositório Git:

Tudo começa aqui. O primeiro passo é inicializar um novo repositório do Git localmente na raiz do seu projeto. Você pode fazer isso com o comando abaixo:

git init

Como adicionar um arquivo à área de preparação (staging) no Git:

O comando abaixo adicionará um arquivo à área de preparação. Basta substituir nome_do_arquivo pelo nome do arquivo que você deseja adicionar à área de preparação.

git add nome_do_arquivo

Como adicionar todos os arquivos à área de preparação no Git:

Se você quiser adicionar todos os arquivos do seu projeto à área de preparação, você pode usar o caractere curinga . e todos os arquivos serão adicionados para você.

git add .

Como adicionar apenas arquivos específicos à área de preparação no Git:

Com o asterisco no comando abaixo, você pode adicionar todos os arquivos que se iniciam com 'arq' à área de preparação.

git add arq*

Como verificar a situação de um repositório no Git:

Este comando mostrará a situação do repositório atual, incluindo arquivos na área de preparação, fora da área de preparação e não monitorados.

git status

Como enviar alterações usando o editor no Git:

Este comando abrirá um editor de texto no terminal, onde você pode escrever uma mensagem de commit completa.

Uma mensagem de commit é composta por um pequeno resumo das mudanças, uma linha vazia e uma descrição completa das alterações depois dela.

git commit

Como enviar alterações com uma mensagem no Git:

Você pode adicionar uma mensagem de commit sem abrir o editor. Este comando permite que você especifique apenas um pequeno resumo para sua mensagem de commit.

git commit -m "sua mensagem para o commit vai aqui"

Como enviar alterações (e pular a área de preparação) no Git:

Você pode adicionar e submeter arquivos rastreados com um único comando utilizando as opções -a e -m.

git commit -a -m "sua mensagem para o commit vai aqui"

Como ver seu histórico de commits no Git:

Este comando mostra o histórico de commits do repositório atual:

git log

Como ver seu histórico de commits e alterações no Git:

Este comando mostra o histórico de commits incluindo todos os arquivos e suas alterações:

git log -p

Como ver um commit específico no Git:

Esse comando mostra um commit específico.

Substitua commit-id pelo id do commit que você encontra no registro depois da palavra commit.

git show commit-id

Como ver estatísticas do registro no Git:

Este comando fará com que o registro do Git mostre algumas estatísticas das alterações de cada commit, incluindo linha(s) alterada(s) e nomes de arquivo.

git log --stat

Como ver as alterações feitas antes de enviá-las usando "diff" no Git:

Você pode passar um arquivo como parâmetro para ver apenas as alterações de um arquivo específico. git diff, por padrão, mostra apenas alterações fora da área de preparação.

Podemos usar "diff" com a opção --staged para ver quaisquer mudanças na área de preparação.

git diff
git diff all_checks.py
git diff --staged

Como ver as alterações usando "git add -p":

Este comando abre um prompt e pergunta se você quer colocar as alterações na área de preparação ou não, entre outras opções.

git add -p

Como remover arquivos rastreados da árvore de trabalho atual no Git:

Este comando espera uma mensagem de commit que explique por que o arquivo foi excluído.

git rm nome_do_arquivo

Como renomear arquivos no Git:

Este comando adiciona a alteração na área de preparação e, em seguida, espera uma mensagem de commit.

git mv nome_antigo_do_arquivo novo_nome_de_arquivo

Como ignorar arquivos no Git:

Crie um arquivo .gitignore e faça o commit desse arquivo.

Como reverter alterações em arquivos fora da área de preparação do Git:

git checkout nome_do_arquivo

Como reverter alterações em arquivos na área de preparação do Git:

Você pode utilizar a opção -p para especificar as mudanças que gostaria de redefinir.

git reset HEAD nome_do_arquivo
git reset HEAD -p

Como modificar o commit mais recente no Git:

git commit --amend permite que você modifique e faça alterações no commit mais recente.

git commit --amend

OBSERVAÇÃO: corrigir um commit local com --amend  é ótimo e você pode enviá-lo para um repositório compartilhado após a correção. Você, no entanto, deve evitar alterações em commits que já se tornaram públicos ou que já foram enviados ao repositório remoto.

Como reverter o último commit no Git:

git revert criará um commit que reverterá tudo o que foi feito no commit em questão.  Podemos reverter o commit mais recente usando a expressão HEAD, assim:

git revert HEAD

Como reverter um commit antigo no Git:

Você pode reverter um commit antigo usando a id desse commit. Isso abre um editor onde você pode adicionar uma mensagem nova de commit.

git revert comit_id_aqui

Como criar uma nova branch no Git:

Por padrão, você tem uma branch, a main. Com este comando, você pode criar uma nova branch. Após a criação, o Git não muda para ela automaticamente – você deverá fazer isso manualmente com o próximo comando.

git branch nome_da_branch

Como mudar para uma branch recém-criada no Git:

Quando quiser usar uma branch diferente da atual ou a branch recém-criada, você pode usar este comando:

git checkout nome_da_branch

Como listar as branches no Git:

Você pode visualizar todas as branches criadas usando o comando git branch . Ele mostrará uma lista com todas as branches e marcará a branch atual com um asterisco e em destaque na cor verde.

git branch

Como criar uma branch no Git e mudar para ela imediatamente:

Em um comando único, você pode criar e mudar para uma nova branch imediatamente.

git checkout -b nome_da_branch

Como excluir uma branch no Git:

Após terminar o trabalho em uma branch e depois de ter feito o merge, você pode excluí-la usando o comando abaixo:

git branch -d nome_da_branch

Como fazer o merge (junção) de duas branches no Git:

Para fazer o merge do histórico da branch atual com o da branch nome_da_branch, você precisará usar o comando abaixo:

git merge nome_da_branch

Como mostrar o registro de commits como um gráfico no Git:

Podemos usar --graph para mostrar o registro de commits como um gráfico. Além disso, --oneline serve para limitar as mensagens de commit em uma única linha.

git log --graph --oneline

Como mostrar o registro de commits de todas as branches como um gráfico no Git:

Faz o mesmo que o comando acima, porém para todas as branches.

git log --graph --oneline --all

Como interromper um merge em conflito no Git:

Se você quiser se desfazer de um merge e começar de novo, você pode executar o seguinte comando:

git merge --abort

Como adicionar um repositório remoto no Git:

Esse comando adiciona um repositório remoto ao local (basta substituir https://repositorio_aqui pelo URL do repositório remoto).

git add remote https://repositorio_aqui

Como ver os URLs remotos no Git:

Você pode ver todos os repositórios remotos vinculados ao seu repositório local com este comando:

git remote -v

Como obter mais informações sobre um repositório remoto no Git:

Basta substituir origin pelo nome do repositório remoto obtido executando o comando git remote -v.

git remote show origin

Como enviar as alterações para um repositório remoto no Git:

Quando todo seu trabalho estiver pronto para ser salvo em um repositório remoto, você pode enviar todas as mudanças usando o comando abaixo:

git push

Como obter as mudanças de um repositório remoto no Git:

Se outros membros da equipe estiverem trabalhando no seu repositório, você pode obter as últimas mudanças feitas no repositório remoto com o comando abaixo:

git pull

Como verificar branches remotas rastreadas pelo Git:

Este comando mostra o nome de todas as branches do repositório local que o Git está rastreando:

git branch -r

Como buscar as mudanças em repositórios remotos no Git:

Este comando baixará as mudanças de um repositório mas não realizará o merge com a sua branch local (isso é o que git pull faz).

git fetch

Como verificar o registro de commits atual de um repositório remoto no Git:

Commit após commit, o Git cria um registro. Você pode descobrir o registro de um repositório remoto usando este comando:

git log origin/main

Como fazer o merge de um repositório remoto com seu repositório local no Git:

Se o repositório remoto tiver mudanças que você gostaria de mesclar ao repositório local, este comando fará isso para você:

git merge origin/main

Como obter o conteúdo das branches remotas no Git sem fazer o merge automático:

Isso permite que você atualize o remoto sem que nenhum conteúdo seja mesclado às branches locais. Você pode usar git merge ou git checkout para fazer o merge.

git remote update

Como enviar uma nova branch para um repositório remoto no Git:

Se você quiser enviar uma branch para um repositório remoto, você pode usar o comando abaixo. Basta lembrar de adicionar -u para criar a branch no repositório remoto:

git push -u origin nome_da_branch

Como remover uma branch remota no Git:

Se você não precisa mais de uma branch remota, você pode removê-la usando o comando abaixo:

git push --delete origin nome_da_branch_aqui

Como utilizar o Git rebase:

Você pode transferir o trabalho concluído de uma branch para outra utilizando o  git rebase.

git rebase nome_da_branch_aqui

O comando git rebase pode ficar desorientado se você não o fizer corretamente. Antes de usar esse comando, sugiro que você releia aqui a documentação oficial (em inglês).

Como executar o rebase de modo interativo no Git:

Você pode executar o rebase de modo interativo usando a opção -i.
Isso abrirá o editor com um conjunto de comandos que você pode usar.

git rebase -i master
# p, pick = usa o commit
# r, reword = usa o commit, mas edita a mensagem
# e, edit = usa o commit, mas interrompe para correção
# s, squash = usa o commit, mas funde em commits anteriores
# f, fixup = similar a "squash", mas descarta o registro de mensagem do commit em questão
# x, exec = executa o comando (o resto da linha) usando shell
# d, drop = remove o commit

Como forçar uma requisição de push no Git:

Este comando forçará uma requisição de push. Isso geralmente é bom para branches de pull request, pois ninguém mais deveria tê-las clonado.
Isso, porém, não deve ser feito em repositórios públicos.

git push -f

Conclusão

Esses comandos podem melhorar drasticamente sua produtividade no Git. Você não precisa se lembrar de todos eles – foi por isso que escrevi esta ficha informativa. Coloque essa página nos seus favoritos para referência futura ou imprima-a, se quiser.

Obrigado pela leitura!  O texto foi escrito por Fabio Pacifici, um desenvolvedor full-stack para a web, professor e profissional certificado em automação com Python. Se você achar esta ficha informativa útil, certamente encontrará algo interessante no canal do autor no YouTube. Você pode se inscrever aqui.