Commands II (Advanced)

Comandos Git avançados para workflows complexos.

Comandos Git Avançados

Comandos avançados para workflows complexos e situações específicas.

Desfazer Mudanças

Reverta mudanças de diferentes formas.

Desfazer último commit (mantém mudanças):

bash
git reset --soft HEAD~1

Desfazer último commit (remove do staging):

bash
git reset --mixed HEAD~1

Desfazer último commit (descarta tudo):

bash
git reset --hard HEAD~1

Reverter commit criando novo commit:

bash
git revert abc123

Descartar mudanças em arquivo:

bash
git restore arquivo.js

Remover arquivo do staging:

bash
git restore --staged arquivo.js

Rebase e Merge

Integre mudanças de diferentes branches.

Fazer merge de branch:

bash
git merge feature/nova-funcionalidade

Merge sem fast-forward:

bash
git merge --no-ff feature/nova-funcionalidade

Rebase branch atual em outra:

bash
git rebase main

Rebase interativo (editar histórico):

bash
git rebase -i HEAD~3

Continuar rebase após resolver conflitos:

bash
git rebase --continue

Cancelar rebase:

bash
git rebase --abort

Stash (Guardar Mudanças Temporariamente)

Salve mudanças temporariamente sem fazer commit.

Guardar mudanças atuais:

bash
git stash

Guardar com mensagem descritiva:

bash
git stash save "WIP: trabalhando em feature X"

Listar stashes:

bash
git stash list

Aplicar último stash e remover:

bash
git stash pop

Aplicar stash sem remover:

bash
git stash apply

Remover último stash:

bash
git stash drop

Cherry-pick e Tags

Aplique commits específicos e crie tags de versão.

Aplicar commit específico na branch atual:

bash
git cherry-pick abc123

Criar tag leve:

bash
git tag v1.0.0

Criar tag anotada:

bash
git tag -a v1.0.0 -m "Versão 1.0.0"

Enviar tags para remoto:

bash
git push --tags

Listar todas as tags:

bash
git tag

Inspeção e Debugging

Investigue histórico e encontre problemas.

Ver quem modificou cada linha:

bash
git blame arquivo.js

Ver detalhes de um commit:

bash
git show abc123

Histórico de mudanças do HEAD:

bash
git reflog

Buscar commit que introduziu bug (bisect):

bash
git bisect start

Filtrar commits por autor:

bash
git log --author="Nome do Autor"

Filtrar commits por data:

bash
git log --since="2 weeks ago"

Limpeza e Manutenção

Mantenha seu repositório limpo e organizado.

Remover arquivos não rastreados:

bash
git clean -fd

Preview do que será removido:

bash
git clean -n

Deletar branch local:

bash
git branch -d feature/antiga

Forçar deleção de branch:

bash
git branch -D feature/antiga

Deletar branch remota:

bash
git push origin --delete feature/antiga

Push Avançado

Opções avançadas de push para situações específicas.

Force push (use com cuidado!):

bash
git push --force origin main

Force push mais seguro:

bash
git push --force-with-lease origin main

Baixar mudanças sem merge:

bash
git fetch origin

Pull com rebase:

bash
git pull --rebase origin main