Fusionar la twig actual en HEAD

Master HEAD tiene algunos cambios y estoy intentando fusionar mis cambios locales actuales con Head.
Supongamos que tengo cambios conflictivos. git solo se niega a pull .

Dice que tengo cambios conflictivos, por lo que en este caso espero que me diga los files que tienen conflictos, pero espera que revertir mis cambios locales y luego extraer

  Master / \ branch1 branch2 (local) \ Master 

Cuando branch2 intenta confirmar los cambios en el maestro falla. ¿Qué debería hacer en este caso? Copie los files manualmente a alguna location, extraiga y luego use winmerge para fusionar los files. o hay una mejor manera de fusionarse?

Cuando hago un git pull , dice que los cambios locales se sobrescribirán, por lo tanto, guarde o comprometa los cambios antes de tirar.

Cuando stash o commit los cambios, y luego pull stash pop error que indica que los cambios en la copy de trabajo se sobrescribirán.

Por cierto, nunca veo un file con conflictos en ninguno de los casos, incluso cuando pruebo una rebase.

La respuesta a esta pregunta está oculta a simple vista en la documentation. De la git help merge :


CÓMO RESOLVER CONFLICTOS

Después de ver un conflicto, puedes hacer dos cosas:

  • Decide no fusionar. Las únicas limpiezas que necesita son restablecer el file de índice al compromiso HEAD para invertir 2. y limpiar los cambios de tree de trabajo hechos por 2. y 3 .; git merge --abort se puede usar para esto.

  • Resuelve los conflictos. Git marcará los conflictos en el tree de trabajo. Edite los files en forma y git add al índice. Usa git commit para sellar el trato.

Puede solucionar el conflicto con una serie de herramientas:

  • Usa una herramienta de combinación. git mergetool para lanzar un mergetool gráfico que te ayudará en la fusión.

  • Mira los diffs. git diff mostrará una git diff tres vías, resaltando los cambios de las versiones HEAD y MERGE_HEAD.

  • Mire los diffs de cada twig. git log --merge -p <path> mostrará primero diffs para la versión HEAD y luego la versión MERGE_HEAD.

  • Mira los originales. git show :1:filename muestra el antecesor común, git show :2:filename muestra la versión HEAD, y git show :3:filename muestra la versión MERGE_HEAD.

Parece que la mejor manera de trabajar con GIT es tener sucursales.

Rama 1
GIT Commit
GIT PUSH
GIT MERGE maestro (para search los cambios más nuevos)

Rama 2
GIT Commit
GIT PUSH

dominar
GIT Merge branch1
GIT Merge branch2

No creo que haya otra forma. ¿Por favor, corríjame si estoy equivocado?

¿Es correcto? Si es así, en este caso, trabajar con twigs es sencillo.