Flujo de trabajo de repository remoto modificado apropiado con egit

Estoy tratando de saltar sobre mi sombra y finalmente aprender git en un nivel básico. Al igual que innumerables principiantes antes que yo, me encontré con el temido error "egit rejected non-fast-forward" al intentar presionar después de la fusión en los cambios remotos y "marcar como fusionado".

Parece que ya encontré una solución para este problema, pero es engorroso y no es compatible con el editor de eclipse. Lo hago así:

  1. Empujar mis cambios – causa el error "egit rechazado no avance rápido"
  2. Cambios de extracción: el editor de comparación ahora contiene marcadores <, = y>. No puedo comparar y modificar cómodamente los cambios, ya que el lado derecho del editor de comparación está vacío y el izquierdo contiene mis cambios y los cambios conflictivos remotos uno encima del otro, lo cual es bastante inútil.
  3. Dolorosamente elegir las partes que quiero editando manualmente el text.

¿Estoy usando egit de la manera correcta?
¿Hay alguna manera de usar correctamente ambos lados del editor de comparación?

Quiero ver mi versión que será empujada y sus diferencias con la versión remota actual en todo momento durante la fusión.

No estoy familiarizado con egit, pero parece que estás lidiando con un conflicto de fusión. ¿Estoy en lo cierto al suponer que alguien más también tiene acceso de inserción a la sucursal en la que está trabajando? Lo que probablemente sucedió es que impulsaron nuevos cambios a la sucursal, que es lo que está causando el rechazo. Y al tirar, intenta fusionarse en algunos cambios conflictivos que debe resolver. Aquí hay una mejor explicación del mismo problema.

La mala noticia es que los conflictos de combinación siempre deben resolverse manualmente. La buena noticia es que parece que egit proporciona una herramienta de combinación para resolver estos conflictos. Esta página wiki de egit puede ayudarlo a encontrar la herramienta de comparación que está buscando. Básicamente, simplemente select el file que tiene conflictos y luego select Equipo> Combinar herramienta .


Si eso no funciona, siempre puede resolver con confianza los conflictos de combinación simplemente usando los marcadores de combinación de git (<,> y =). Lea esto para get una explicación detallada de cómo se usan en Git. Básicamente, cualquier cosa debajo de <<< y superior === serán tus cambios. El código a continuación === y superior >>> serán sus cambios. Y debe elegir el lado que desea, o puede personalizarlo aún más. borrando todo y volviendo a escribir el código usted mismo.

Aquí hay un ejemplo. Esto es algo que puede ver al resolver un conflicto de fusión. La parte superior le muestra la confirmación en su HEAD local, su versión de la confirmación. Y en la parte inferior, debajo de === muestra la confirmación en origin/master , la versión que acaba de extraer.

 <<<<<< HEAD:test.html <h1>This is my version</h1> ====== This is their version >>>>>> origin/master:test.html 

Para mantener solo su versión, puede replace todo ese bloque con esto. Es como si las flechas y los signos de igualdad te dieran una opción. ¿Quieres la parte superior (tuyo), o la parte inferior (de ellos)?

 <h1>This is my version</h1> 

Alternativamente, tal vez quieras una combinación de ambos. Aquí, mantendría su label <h1> html, pero usando su text.

 <h1>This is their version</h1> 

Espero que esto te ayude a sentirte más cómodo resolviendo conflictos de combinación. Si quieres aprender más sobre Git, siempre recomiendo git-scm .