Resolvendo conflitos

Um conflito ocorre quando duas versões do repositório estão dessincronizadas, e é impossível determinar quais modificações devem ser preservadas, e quais devem ser descartadas. Estas versões não são commits diferentes, mas sim repositórios distintos: por exemplo, um repositório remoto e um repositório local. As modificações introduzidas no repositório remoto podem vir quando clonamos este repositório em outra máquina, que não o nosso computador pessoal, modificamos o código e enviamos ao repositório remoto; ou então quando um colega de trabalho introduz estas modificações a partir do seu computador pessoal.

É possível ver que um conflito ocorreu quando tentamos dar um git push e a seguinte tela aparece:

image0_html

Para auxiliá-lo na compreensão deste fenômeno, é disponibilizado um repositório de código-fonte [1], usado nas imagens desta Seção. O que está representado na imagem acima diz respeito ao fato de não ser possível enviar o código-fonte para o GitHub pois existem modificações nos arquivos que ainda não colocamos no repositório local. Precisamos então baixá-las, usando o comando git pull.

Às vezes, o git consegue conciliar ambas versões do código-fonte (local e remota). Porém, quando isto não é possível, nós mesmos teremos que resolver o conflito que ocorreu nos arquivos. Será necessário o ajuste manual toda vez que, ao executar um comando git pull, a tela

image1_html

Ou então a tela

image2_html

aparecer. Dependendo de qual tela aparecer, teremos que seguir caminhos diferentes: