ConceptoBloque 4 · Pull requests y forks
El mismo conflicto, ahora dentro del PR
Comandos de esta diapositiva
git switch ramagit pull origin maingit add archivogit commitgit push
Explicación
Es el mismo conflicto del Bloque 3, ahora dentro del PR. Pasa cuando, mientras tu PR está abierto, alguien integra a main un cambio que toca las mismas líneas que tú. GitHub avisa:
This branch has conflicts that must be resolved
y no deja integrar hasta que se arregle.
Como dos personas que editan el mismo párrafo de un documento compartido: quien guarda segundo se encuentra el choque y es quien lo arregla.
Dos formas de resolverlo
- En la web: Resolve conflicts abre un editor con los marcadores. Editas, Mark as resolved y Commit merge. Sirve para conflictos chicos.
- En tu computadora (la que usamos): traes
maina tu rama, resuelves en VS Code y subes.
git switch rama
git pull origin main
# resolver en VS Code
git add archivo
git commit
git push
El PR se actualiza solo y el aviso desaparece.
Ojo con Current e Incoming
Aquí el merge va al revés que el de la integración final: estás parado en tu rama, así que Current es tu rama e Incoming es main.
Se resuelve en la rama y no en main, para que main nunca vea un archivo con marcadores. Nunca dejes un marcador dentro de un PR.
Si se coló un marcador
git grep -n "<<<<<<<"
Corrige y sube un commit nuevo. No reescribas la historia.