Git avançado: reescrita e guardado
Estas aulas tratam de rebase e stash usando o histórico Git deste app e um repositório de rascunho descartável. Um rebase para num conflito, e um commit some quando o patch dele fica vazio. Há git commit --fixup com git rebase --autosquash, incluindo a mudança do Git 2.44, e git rebase --onto para mover uma branch para outra base. A parte de stash cobre git stash push, list e show, a diferença entre apply e pop, arquivos não rastreados com -u e conflitos no stash pop.
O que você vai aprender
- ✓Resolver um conflito de rebase com git add e git rebase --continue, além de --abort e --skip
- ✓Por que um rebase descarta um commit cujo diff fica vazio
- ✓Incorporar commits de fixup com git commit --fixup e git rebase --autosquash
- ✓Mover uma branch para outra base com git rebase --onto
- ✓Guardar e ler trabalho sem commit com git stash push, list e show
- ✓Escolher entre stash apply e pop, e lidar com um conflito no stash pop
O histórico Git deste app até aqui
Os dois comandos rodaram neste projeto quando este curso foi revisado. Esses seis commits são o trabalho em si: reescritas de aulas e um pequeno conserto no app. O que o --no-merges esconde é como eles chegaram à main. Cada um veio por um pull request. A main registra isso com um commit de merge…
Ler a aula completa grátis →Currículo
7 aulasO histórico Git deste app até aqui
Lê o log e a lista de branches deste app, com commits de merge, branches empilhadas e branches fora da main.
O rebase reaplica um commit de cada vez, mostrado com um conflito
Um rebase para num conflito, é resolvido passo a passo e descarta sem aviso um commit de diff vazio.
Autosquash: a parte do rebase interativo que roda sem editor
Usa git commit --fixup com git rebase --autosquash, que roda sem editor desde o Git 2.44.
rebase --onto: movendo uma branch pra uma nova base
Explica o git rebase --onto com exemplos do manual do Git e um caso de branches empilhadas após squash.
git stash: uma segunda pilha pra trabalho não commitado
Mostra git stash push, list e show, e como as entradas ficam em refs/stash, fora de qualquer branch.
apply mantém, pop descarta: a diferença
Compara o git stash apply, que mantém a entrada, com o pop, que a descarta, e o uso de -u.
Quando o stash pop conflita, e rebase ou merge na prática
Mostra um conflito no stash pop que mantém a entrada, o git stash branch e quando usar stash.