Muito bom!
Complementando: sobre os comandos switch
e restore
, eu já fiz este post. Vale lembrar que até hoje, a documentação oficial (aqui e aqui) ainda diz que eles são comandos experimentais e podem mudar. De qualquer forma, é interessante conhecê-los, pois se um dia deixarem de ser experimentais, vc não será pego de surpresa.
Por fim, já que a ideia é ir além do básico, tem dois posts meus que falam sobre detalhes internos do Git, e que ajudam muito a entender melhor como ele funciona: