Uma História de Conflito entre Duas Amigas
Essa história conta como aconteceu o conflito, e como foi resolvido. Mas não é feita de romance, é feita de comandos git
.
Quinta-feira, dia 11 de Fevereiro, as 19h03min12s
Neste exato momento, Laura fez o commit e push da sua edição no arquivo de chamada. Ela, como foi instruída pelo professor, colocou seu nome na última colocação, e seu número era 14.
[20210212.002308, !1590]$ git show 941c4b2 commit hash 941c4b2f2af5581 Author: Laura Kely Monteiro Da Silva <lauramonteiro> Date: Thu Feb 11 19:03:12 2021 -0300 logica: Laura Kely Monteiro Da Silva diff --git a/logica/2020s1-01-logica.md b/logica/2020s1-01-logica.md index 290bb24..8dab2f6 100644 --- a/logica/2020s1-01-logica.md +++ b/logica/2020s1-01-logica.md @@ -28,3 +28,4 @@ 11 | Eduardo Cavalcanti Ferreira | @eduardocavalcanti | 12 | Gabriel Antonio Caetano Farias | @gabrielfariaseng | 13 | Marcos Andre Estrela Santos Junior | @estrelanony | +14 | Laura Kely Monteiro Da Silva | @LauraM358 |
Quinta-feira, dia 11 de Fevereiro, às 19h03min19s
Com apenas 7 segundos de diferença, Andressa não tinha em seu repositório as atualizações feitas por Laura. Para Andressa, o arquivo terminava em Marcos, número 13, e ela era a detentora do número 14 por direito. Ela fez sua edição, salvou o arquivo, fez o commit, e até aí tudo bem. Mas ela está prestes a ter uma surpresa durante o push.
$ git show 4b35269 commit hash 4b3526933b50 Author: Andressa Freitas De Arruda <andressa> Date: Thu Feb 11 19:03:19 2021 -0300 logica: Andressa Freitas De Arruda diff --git a/logica/2020s1-01-logica.md b/logica/2020s1-01-logica.md index 290bb24..706e9de 100644 --- a/logica/2020s1-01-logica.md +++ b/logica/2020s1-01-logica.md @@ -28,3 +28,4 @@ 11 | Eduardo Cavalcanti Ferreira | @eduardocavalcanti | 12 | Gabriel Antonio Caetano Farias | @gabrielfariaseng | 13 | Marcos Andre Estrela Santos Junior | @estrelanony | +14 | Andressa Freitas De Arruda | @andressa741 |
Quando tentou fazer o push, Andressa notou um conflito. Uma mensagem de erro voltou indicando a ela que era preciso resolvê-lo. Ao abrir novamente o arquivo de chamada, eis o que nele se encontrava:
$ cat logica/2020s1-01-logica.md # Lista de Chamada * Disciplina: Logica Matematica * Turma: LT * Periodo: 2020s1 * Horario: - Qua, 13h50 - 15h30 - Qui, 15h30 - 17h10 * Prof. Dr. Ruben Carlo Benante # Semana: 01 ## Alunos presentes N | Nome Completo | Usuario Github | ---|------------------------------------------------------------|---------------------------| 01 | Arlon Nata Alves Granja Delmondes | @arlonnata1 | 02 | Iuri Nazareno De Franca Rossi | @iurirossi | 03 | Joao Pedro Henderson Sarruf | @joaosarruf | 04 | Breno Augusto De Brito Rangel | @brenorangel20 | 05 | Jose Lucas Bessa De Oliveira | @JoseLucasBessa | 06 | Gabriel De Mendonca Ramalho | @Gabs2002 | 07 | Marcus Vinicius Barbosa Vilela Curvelo | @marc3105 | 08 | Andre Wanderley De Melo | @andr3m3l0 | 09 | Alex Bruno Seabra | @aalexbrunno | 10 | Eduardo Felipe Da Silva Braga | @eduubr | 11 | Eduardo Cavalcanti Ferreira | @eduardocavalcanti | 12 | Gabriel Antonio Caetano Farias | @gabrielfariaseng | 13 | Marcos Andre Estrela Santos Junior | @estrelanony | <<<<<<< HEAD 14 | Laura Kely Monteiro Da Silva | @LauraM358 | ======= 14 | Andressa Freitas De Arruda | @andressa741 | >>>>>>> 4b3526933b50
Resolvendo o conflito
Não tinha como não ficar estupefada pela descoberta de que haviam dois números 14! Ora como? Simples: ao fazer o push, o comando git tenta enviar os arquivos locais para o repositório remoto, e lá encontra a atualização feita pelo push imediatamente anterior, o push de Laura.
Normalmente o conflito se resolve sozinho, pois o comando git é capaz de interpolar linhas diferentes editadas por pessoas diferentes. Mas aqui seria necessário intervenção humana, pois a mesma linha indicava dois nomes, e o comando git não tem como saber qual seria a certa.
A marcação <<<<<<< HEAD
marca o início do arquivo remoto (arquivo de Laura). A marcação =======
marca a separação entre o arquivo remoto (de Laura) e o arquivo local (de Andressa). E finalmente, a marcação >>>>>> 4b3526933b50
marca o final do conflito.
Andressa então tem que ajustar esse arquivo. Ela deve deixar o número 14 para Laura, que uma hora dessas já até desligou o seu computador totalmente alheia ao fato (pois para Laura, lembre, o push foi sem conflito). Andressa então deve recolocar seu nome com o número 15, e, muito importante, deve apagar as marcas <<<<<
, =====
e >>>>>
do conflito. O arquivo final da Andressa ficará assim:
$ cat logica/2020s1-01-logica.md # Lista de Chamada * Disciplina: Logica Matematica * Turma: LT * Periodo: 2020s1 * Horario: - Qua, 13h50 - 15h30 - Qui, 15h30 - 17h10 * Prof. Dr. Ruben Carlo Benante # Semana: 01 ## Alunos presentes N | Nome Completo | Usuario Github | ---|------------------------------------------------------------|---------------------------| 01 | Arlon Nata Alves Granja Delmondes | @arlonnata1 | 02 | Iuri Nazareno De Franca Rossi | @iurirossi | 03 | Joao Pedro Henderson Sarruf | @joaosarruf | 04 | Breno Augusto De Brito Rangel | @brenorangel20 | 05 | Jose Lucas Bessa De Oliveira | @JoseLucasBessa | 06 | Gabriel De Mendonca Ramalho | @Gabs2002 | 07 | Marcus Vinicius Barbosa Vilela Curvelo | @marc3105 | 08 | Andre Wanderley De Melo | @andr3m3l0 | 09 | Alex Bruno Seabra | @aalexbrunno | 10 | Eduardo Felipe Da Silva Braga | @eduubr | 11 | Eduardo Cavalcanti Ferreira | @eduardocavalcanti | 12 | Gabriel Antonio Caetano Farias | @gabrielfariaseng | 13 | Marcos Andre Estrela Santos Junior | @estrelanony | 14 | Laura Kely Monteiro Da Silva | @LauraM358 | 15 | Andressa Freitas De Arruda | @andressa741 |