Extra — Git avançado
Objectivo: sair de “commit/push” e dominar o que salva o dia: conflitos, desfazer, guardar trabalho a meio. Pré-requisito: M1 (Versionar e colaborar).
1. Guardar trabalho a meio — stash
git stash # guarda as alterações e limpa a área de trabalho
git stash pop # traz de volta
Útil quando precisas de mudar de branch sem comitar.
2. Juntar trabalho — merge vs rebase
merge— junta duas branches criando um commit de junção (histórico ramificado).rebase— “reaplica” os teus commits por cima dos outros (histórico linear, mais limpo).
git checkout main
git merge nova-funcionalidade
Regra simples para começar: usa merge.
rebasequando já estiveres confortável.
3. Resolver conflitos
Quando dois lados mudam a mesma linha, o Git marca:
<<<<<<< HEAD
o meu texto
=======
o texto do outro
>>>>>>> branch
Editas, ficas com a versão certa, apagas as marcas, e:
git add ficheiro
git commit
4. Desfazer — com segurança
git revert <commit> # cria um commit que anula outro (seguro, mantém histórico)
git reset --soft HEAD~1 # desfaz o último commit, guarda as alterações
Cuidado com
reset --hard— apaga alterações. Na dúvida,revert.
5. Tags (versões)
git tag v1.0.0
git push --tags
✅ Exercício
Cria uma branch, muda a mesma linha que mudaste na main, faz merge e resolve o conflito à mão.