WIP: A descrição e explicação dos comandos está sendo postada aqui conforme o avanço.
levels
Main
Módulo: Temas avançados
1: Fazendo mais de 9000 rebases
Dificuldade (pra mim!): dificil
- Essa lição é mais um cenário proposto que diz:
Cara, temos um monte de branches aqui! Vamos fazer um rebase de todo o trabalho contido nesses branches para o main.
No entanto, a cúpula da administração está tornando as coisas mais difíceis -- eles querem que os commits estejam todos em ordem sequencial. Isso significa que a nossa árvore final precisa ter o C7' por último, C6' acima disso, e assim por diante, tudo ordenado.
Se você fizer besteira, sinta-se livre para usar o comando reset para recomeçar do zero. Depois lembre de olhar nossa solução do gabarito para ver se consegue resolver a tarefa usando menos comandos!
- Comandos:
# 1
git rebase main bugFix
# 2
git rebase bugFix side
# 3
git rebase side another
# 4
git rebase another main
2: Especificando pais
Dificuldade (pra mim!): fácil
- Essa lição é mais um cenário proposto que diz:
Assim como o modificador
~
, o modificador^
também aceita um número opcional depois dele.Em vez de especificar o número de gerações a voltar (que é o que o
~
faz), o modificador no^
especifica qual referência de pai a ser seguida a partir de um commit de merge. Lembre-se que commits de merge possuem múltiplos pais, então o caminho a seguir é ambíguo.O Git normalmente subirá o "primeiro" pai de um commit de merge, mas especificar um número após o
^
muda esse comportamento padrão.Basta de conversa, vejamos o operador em ação.
- Comandos:
# 1
git branch bugWork mmain~^2~
3: Espaguete de branches
Dificuldade (pra mim!): fácil
- Essa lição é mais um cenário proposto que diz:
Uhuuuuu Nelly! Temos um belo de um objetivo para alcançar neste nível.
Temos aqui um
main
que está alguns commits atrás dos branchesone
,two
ethree
. Seja lá por qual razão, precisamos atualizar esses três outros branches com versões modificadas dos últimos commits domain
.O branch
one
precisa de uma reordenação e da exclusão do C5. Otwo
precisa apenas de reordenação. Othree
precisa de um único commit!Vamos deixar você descobrir como resolver esta tarefa -- mas não deixe de ver a nossa solução depois com o comando
show solution
.
- Comandos:
# 1
git checkout one
# 2
git cherry-pick C4 C3 C2
# 3
git checkout two
# 4
git cherry-pick C5 C4 C3 C2
# 5
git branch -f three C2
Top comments (0)