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
mainque está alguns commits atrás dos branchesone,twoethree. Seja lá por qual razão, precisamos atualizar esses três outros branches com versões modificadas dos últimos commits domain.O branch
oneprecisa de uma reordenação e da exclusão do C5. Otwoprecisa apenas de reordenação. Othreeprecisa 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)