Git cheatsheet (comandos e macetes)
- Publicado em: 04/08/2021
Não li, nem lerei
Um breve resumo para pessoas cansadasEssa lista tem objetivo de te ajudar em situações cotidianas :)
Comandos Git
Aliases
Listar alias existentes
git config --list | grep alias
Criar um alias
git config --global alias.st status
Usar o alias criado acima
git st
(terá o mesmo efeito quegit status
)
Excluir alias
git config --global --unset alias.st
Onde o alias fica armazenado?
~/.gitconfig
Branches
Listar branches remotas
git branch -r
Resetar sua branch igualando ao repositório remoto
git reset --hard origin/[nome-da-branch]
Reconstruir branch local com base em branch remota
- Sincronize as alterações:
git fetch
- Delete a branch local:
git branch -D [nome-da-branch]
- Faça checkout na branch:
git checkout [nome-da-branch]
Checkout
Desfazer alterações em um arquivo fora da stage
git checkout -- [nome-do-arquivo-01] [nome-do-arquivo-01]
Pegar conteúdo de um arquivo de outra branch.
git ck [nome-da-branch] -- [caminho-relativo-do-arquivo]
- Ex:
git ck master -- packages/core/yarn.lock
- Ex:
Commits
Listar todos os commits e tags ( de maneira visualmente agradável)
git log --decorate --oneline --graph
Listar todos commits não pusheados na branch atual
git cherry -v
Listar todos commits da branch atual que não estão na branch main
git log origin/main..HEAD
Fazer um commit vazio
git commit -m "Sua mensagem de commit" --allow-empty
Fazer checkout em um commit de uma branch
- Pegue o id do commit:
git log --oneline
- Faça checkout no commit:
git checkout [id-do-commit]
- Crie uma branch para padronizar o desenvolvimento:
git checkout -b [nome-do-novo-branch]
Deletar um commit pusheado
git log
- Copie o hash do commit, ex:
c929b5c
git revert [hash-do-commit]
- Faça um
push
para sua branch
Deletar o último commit pusheado sem deixar rastros
git reset --hard HEAD~1
- Faça um
git push --force origin [nome-da-sua-branch]
Diff
Verificar diferenças entre commits
git diff [hash-do-commit-antigo]..[hash-do-commit-recente]
Ver os arquivos de um commit
git diff-tree --no-commit-id --name-only -r [hash-do-commit]
Merge
Cancelar um merge (digamos que você fez um merge
, surgiram diversos conflitos e você quer voltar)
git merge --abort
Desfazer commit de merge não pusheado (digamos que você fez um merge
, deu certo mas você quer voltar)
git reset --hard HEAD~1
Stashes
Guardar alterações num espaço temporário
git stash
- Conferir se foi salvo:
git stash list
- Recuperar as alterações do comando
stash
:git stash list
git stash apply [stash-id]
para aplicar sem remover da lista de stashgit stash pop
para aplicar removendo o item da lista de stash
Visualizar um único arquivo em stash
git show stash@{[posicao-do-stash-na-lista]}:[filename]
- Ex:
git show stash@{0}:yarn.lock
- Ex:
Salvar um arquivo em stash com outro nome
- Path completo:
git show stash@{0}:[full filename] > [newfile]
- Path relativo:
git show stash@{0}:./[relative filename] > [newfile]
Tags
Listar todas as tags
git tag -l
Criar uma tag
git tag [numero-da-tag]
Deletar uma tag local não pusheada
git tag -d [numero-da-tag]
Deletar uma tag pusheada
- Delete a tag localmente:
git tag -d [numero-da-tag]
- Depois delete a tag remota:
git push --delete origin [numero-da-tag]
Gerar arquivo zip
a partir de tag
- Crie a tag se ela não existir:
git tag [numero-da-tag]
git archive [numero-da-tag] --format=zip --output=[nome-do-arquivo-zipado].zip