Chapters ▾ 2nd Edition

A3.8 Appendix C: Comandos do Git - Patches

Patches

Alguns comandos do Git se concentram no conceito de considerar os commits pelas alterações que introduzem, como se a sequência de commits fosse uma série de patches. Esses comandos ajudam a gerenciar seus branches dessa maneira.

git cherry-pick

O comando git cherry-pick é usado para pegar a alteração introduzida em um único commit do Git e tentar reintroduzi-la como um novo commit no branch atual. Isso pode ser útil para trazer individualmente apenas um ou dois commits de um branch, em vez de mesclar o branch e trazer todas as alterações.

O cherry-pick é descrito e demonstrado em Fluxos de Trabalho de Rebase e Cherry-Pick.

git rebase

O comando git rebase é basicamente um cherry-pick automatizado. Ele determina uma série de commits e então aplica cherry-pick a cada um deles, na mesma ordem, em outro local.

O rebase é abordado em detalhes em Rebase (Rebasing), incluindo os problemas de colaboração envolvidos ao fazer rebase de branches que já são públicos.

Em Substituir (Replace), nós o usamos na prática em um exemplo que divide o histórico em dois repositórios separados, usando também a flag --onto.

Em Rerere, examinamos como lidar com um conflito de merge durante um rebase.

Em Alterando Várias Mensagens de Commit, também o usamos em um modo interativo para scripts com a opção -i.

git revert

O comando git revert é essencialmente um git cherry-pick ao contrário. Ele cria um novo commit que aplica exatamente o oposto da alteração introduzida no commit selecionado, na prática desfazendo ou revertendo essa alteração.

Em Reverter o commit, usamos esse comando para desfazer um commit de merge.