Git cheat sheet, organizado pelo que você quer fazer
Git cheat sheet
Git cheat sheet por tarefa: comandos, como desfazer e npm | We.Inc
Um cheat sheet de Git pesquisável e organizado por tarefa: iniciar, salvar, criar branches, fazer merge, sincronizar e publicar, mais receitas de "fiz besteira" para desfazer, um diagrama de onde ficam as mudanças e comandos npm comuns.
A maior parte do trabalho diário com Git são seis comandos: git status para ver as mudanças, git add para colocá-las no stage, git commit -m para salvar, git switch -c para criar uma branch, git pull para pegar atualizações e git push para compartilhar. Para desfazer, use git restore para arquivos, git reset para commits locais e git revert para commits que já foram enviados.
Desfazer em um relance
Desfazer o quê
Comando
Edições em um arquivo
git restore file
O stage
git restore --staged file
Último commit, sem push
git reset --soft HEAD~1
Um commit já enviado
git revert <commit>
Pesquise os comandos abaixo, copie qualquer linha com um clique e use as receitas quando algo der errado. Os comandos usam git switch e git restore, os substitutos mais claros para as muitas funções do git checkout.
Digite uma palavra como undo, branch ou tag na caixa de busca.
Copie o comando e troque pelo nome da sua branch ou do seu arquivo.
Confira o diagrama para ver entre quais áreas um comando move as mudanças.
Rode git status antes e depois de qualquer coisa que reescreva o histórico.
Faça commits pequenos e frequentes; commits pequenos são fáceis de reverter e revisar.
Nunca faça reset ou force-push em uma branch que outras pessoas usam. Use revert.
Prefira --force-with-lease a --force; ele recusa se outra pessoa tiver feito push.
Escreva as mensagens de commit dizendo o que a mudança faz: "Adiciona formulário de reserva", não "mudanças".
Guarde segredos em arquivos de ambiente listados no .gitignore desde o primeiríssimo commit.
Perguntas frequentes
Qual é a diferença entre git reset e git revert?
reset move a sua branch para trás, removendo commits do histórico dela; isso é tranquilo para trabalho local. revert adiciona um novo commit que desfaz um antigo, deixando o histórico intacto, o que é a escolha segura depois que um commit foi enviado.
git switch ou git checkout?
Os dois funcionam. O Git 2.23 adicionou git switch para trocar de branch e git restore para restaurar arquivos, separando as duas funções que o git checkout fazia. Eles são mais fáceis de ler e mais difíceis de usar errado.
O que git fetch faz que git pull não faz?
fetch baixa os commits novos mas não muda nada na sua branch. pull roda fetch e depois faz merge ou rebase desses commits na branch atual.
Como recupero um commit que perdi?
Rode git reflog. Ele lista todas as posições em que o seu HEAD esteve, incluindo commits para os quais nenhuma branch aponta. Encontre o que você quer e rode git switch -c rescue <sha>.
npm install ou npm ci?
Use npm install enquanto desenvolve; ele pode atualizar o lock file. Use npm ci em builds e em CI; ele apaga node_modules e instala exatamente o que o lock file diz, falhando se package.json e o lock file não baterem.
Onde as suas mudanças ficam
O Git trabalha com quatro lugares: a sua pasta de trabalho, a staging area (também chamada de index), o seu repositório local e o remoto. add move as mudanças da pasta para o stage, commit do stage para o repositório, push do seu repositório para o remoto, e pull traz de volta os commits do remoto.
Do commit a um site no ar
Muitas hospedagens publicam quando você faz push para uma branch. Trabalhe em uma branch de feature, faça push para ter uma prévia e faça merge na main para publicar. Crie tags nas versões para conseguir voltar rápido a uma versão que funcionava.
Correções passo a passo
Fez commit na main em vez de em uma branch
Crie uma branch onde você está (ela guarda os commits) e depois volte a main para ficar igual ao remoto. Só faça isso antes do push.
Resolvendo um conflito de merge
O Git para e marca as linhas em conflito. Edite cada arquivo para a versão que você quer, remova os marcadores, depois coloque no stage e conclua.
Enviou um segredo por engano
Troque a chave primeiro: depois do push, considere que ela foi copiada. Em seguida remova-a do código e do histórico, e adicione o arquivo ao .gitignore.
Vai escrever um README para o repositório? Use o
cheat sheet de Markdown
Pasta de trabalho
Staging area
Repositório local
Remoto (GitHub, GitLab)
Configure uma vez
Nome gravado nos seus commits
E-mail gravado nos seus commits
Repositórios novos começam na main
git pull faz rebase em vez de criar commits de merge
Começar um projeto
Transforma a pasta atual em um repositório
Copia um repositório remoto para a sua máquina
Conecta um repositório local a um remoto
Lista os remotos e as URLs deles
Salvar o trabalho
O que mudou, o que está no stage
Coloca um arquivo no stage
Coloca partes de arquivos no stage, trecho por trecho
Faz commit do que está no stage
Mudanças ainda fora do stage
Mudanças no stage para o próximo commit
Histórico compacto com as branches desenhadas
Branch e merge
Cria uma branch e vai para ela
Vai para uma branch existente
Lista as branches locais
Faz merge daquela branch na atual
Reaplica a branch atual em cima da main
Apaga uma branch já mesclada (-D força)
Copia um commit para a branch atual
Sincronizar e publicar
Baixa as mudanças do remoto sem mexer nos seus arquivos
Faz fetch e depois merge ou rebase na branch atual
Envia uma branch nova e lembra para onde ela vai
Envia a branch atual
Marca uma versão
Envia essa tag (tags não são enviadas por padrão)
Guardar trabalho para depois
Deixa de lado as mudanças sem commit
Mostra o que está no stash
Traz de volta o stash mais recente e o remove da lista
Fiz besteira: receitas
Descarta edições fora do stage em um arquivo (não dá para desfazer)
Tira um arquivo do stage mas mantém as edições
Corrige a mensagem do último commit (ou adiciona arquivos do stage a ele) antes do push
Desfaz o último commit e mantém as mudanças dele no stage
Apaga o último commit e as mudanças dele (local, sem push)
Desfaz um commit enviado com um novo commit; seguro em branches compartilhadas
Encontra um commit perdido depois de um reset ou rebase, depois git switch -c rescue <sha>
Sai de um merge com conflitos
Sai de um rebase que deu errado
Fez commit na main por engano: coloca o trabalho em uma branch e depois faz reset da main
Sobrescreve uma branch remota só se ninguém fez push desde o seu último fetch
Mostra uma prévia e depois apaga arquivos e pastas não rastreados
Cria o package.json com os valores padrão
Instalação limpa exatamente a partir do lock file (use em CI)
Adiciona uma dependência
Adiciona uma dependência só de desenvolvimento
Remove uma dependência
Lista os pacotes com versões mais novas
Informa vulnerabilidades conhecidas
Mostra quais versões de um pacote estão instaladas e por quê