¿Por qué hay conflictos cuando se realizan cambios en una sucursal local después de que una request de extracción se haya fusionado en el control remoto?

Desde mi twig de develop , creo una twig de feature y realizo algunos cambios. Después de todos mis cambios, compruebo todas mis confirmaciones para que solo se agregue 1 post de confirmación después de la fusión, así, git reset --soft HEAD~X & git commit & git push -f , donde X es el número de confirmaciones aplastar.

Luego se crea una request de extracción y la feature se fusiona con éxito para develop sin conflictos. Luego deseo actualizar mi twig de develop local, por lo que hago el siguiente git checkout develop & git pull .

Hay conflictos, ¿por qué es esto y cómo podría evitarlos?

Tenga en count que no se han realizado cambios en la copy local de develop en este escenario.

Por lo general, es un avance rápido como dijo Mark.

Si hay un conflicto, se debe principalmente a que la twig de develop se ha modificado (squash, rebase, etc.). Antes de realizar cambios desde la twig de develop remoto a la twig de develop local, puede verificar mediante los siguientes commands:

 git fetch origin develop git log develop..origin/develop --oneline git log origin/develop..develop --oneline 

Si git log origin/develop..develop --oneline tiene salida, eso significa que el historial de develop sucursal de develop ha sido modificado por otros.

Hay conflictos, ¿por qué es esto y cómo podría evitarlos?

Alguien más ha cometido un código que lo causa.
Para evitarlo, intente utilizar la pull request si puede, todos los serveres principales la admiten y verá los conflictos antes de fusionarse.

La mejor manera de manejarlo es llevar al developer a su branch características con mucha frecuencia. Esto networkingucirá la posibilidad de tener conflictos.

Si desea ejecutar "ejecución en seco" antes de fusionarse, puede hacerlo (dependa de cuál es su twig actual).

 git log ^branchA branchB git log ^develop feature git log develop ^feature