^[https://www.atlassian.com/br/git/tutorials/using-branches/merge-conflicts]
- Leia o erro
git statuspara verificar o que há de errado caso o erro não seja tão descritivo.git log --mergelista de commits com conflitos entre as ramificaçõesgit diffpara encontrar diferenças entre os estados de repositórios/arquivosgit reset --mixeddesfazer mudanças no diretório de trabalho e na área de staging.
- Examine o arquivo com conflito.
catseria melhor para arquivos pequenos e analisar o arquivo no editor de texto para arquivos muito grandes - Decida qual alteração vai ficar e exclua as linhas da outra
git add <arquivo>- Crie um commit com as alterações certas
git commit -m "merged and resolved the conflict in <arquivo>
- Tags marcam um ponto imodificável (fixo) no repositório
Recuperando Trabalho Perdido
- git reflog → visualizar todas as alterações, se você comitou, você consegue recuperar um
git cherry-pick!Manuel-de-Comandos-Git-e-Terminal#^d565a9
Juntando Commits
git rebase com o parâmetro -i de interativo, para selecionar quais commits rebasear, com o HEAD para informar que é a partir de agora git rebase -i HEAD~3 ou git rebase -i <commit imediatamente anterior aqueles que quer rebasear>
Fluxos De Trabalho Git
Git Flow
- O estado do código representado pela branch main deve ser o mesmo que estará em produção
- Deve haver uma branch de desenvolvimento (comumente chamado de develop), onde todas as funcionalidades e correções devem ser muito bem testadas antes de ir para produção (main)
- Cada funcionalidade deve ser feita em uma branch separada, e que é comum que esta branch tenha feature/ como prefixo
- Bugs normalmente são corrigidos em branches separadas, com o prefixo hotfix/
- Branches específicas para cada release são criadas para realizar os testes e correções de bugs específicos
Trunk-based Development
Desenvolvimento necessário para CI/CD pois os testes são feitos depois de cada commit na main(trunk)
Git Hooks
pesquisar melhor mais para frente!!!! envolve testes e shell script