¿Cómo combinar files y enviarlos usando egit y Eclipse?

¿Cuáles son los pasos recomendados para realizar cambios en la twig principal con Eclipse + egit?

He estado usando Eclipse y svn durante mucho time y todo funciona maravillosamente allí. Cada vez que estoy a punto de cometer un cambio, mi flujo es el siguiente:

  • sincronizar con el espacio de trabajo
  • search conflictos
  • cuando se encuentran conflictos, combine manualmente y luego marque el file como fusionado
  • actualizar
  • cometer

En los casos excepcionales en los que bash enviar un grupo de files sin confirmación, me lo advierten y puedo corregir los cambios de forma adecuada.

Incluso si actualizo los files que están en conflicto, no está mal recuperarse de eso, aunque encuentro que sincronizar primero con el área de trabajo para identificar y fusionar files con conflictos es mucho mejor que intentar fusionar después de una actualización que falló debido a conflictos .

Con egit, ningún flujo que intenté funcionó correctamente. Primero, si hago una extracción errónea del server y hay conflictos, me dicen que hubo un conflicto, pero estoy muy confundido: me cuesta recuperar lo último del server y me resulta imposible confirmar mis files. no importa la cantidad de synchronization que hago Incluso replace mi file con lo último de head y hacer otro pull y luego commit no parece funcionar más.

Incluso si sigo el mismo enfoque que utilicé con svn (sincronizo primero y fusiono manualmente los files con conflictos) y sigo en segundo lugar con un pull, aún obtengo los mismos errores que mencioné anteriormente, como si no tuviera en count mi marcado de un file como fusionado para.

Entonces … hoja de papel en blanco, ¿cuáles son las instrucciones recomendadas cuando realicé algunos cambios, quiero fusionarlos con el último código en el server (que puede include cambios de files que entran en conflicto con mi set de cambios) y, opcionalmente, quiero comprometer mis cambios? El puntero a un buen tutorial está bien si hay alguien discutiendo este tipo de problemas.

No estoy seguro si entendí tu pregunta correctamente. Pero ahora estoy tratando de darte algunas pistas. Hace poco, convertimos el repository de nuestra empresa de CVS a git, lo cual fue todo un reto ya que teníamos muchas preguntas cinputs en el mismo problema al que apunta.

En primer lugar, debo decir que, viniendo de SVN o CVS, no podrá hacer su flujo de trabajo como lo hizo durante años.

Especialmente trabajar en un pequeño set de files y actualizar solo aquellos a través de la synchronization no funcionará con git. Estos son los pasos que tomo al sincronizar (en términos de get lo último del server) con nuestro git.

  1. Me comprometo. ¡El compromiso temprano es lo que te ahorra mucho dolor! No tenga cambios pendientes al sincronizar con un repository remoto, ya que esto podría ocasionar bastante dolor.
  2. Yo busco Con egit puedes poner la acción en la barra de herramientas o incluso crear un atajo para ella, lo que hace que la búsqueda sea bastante cómoda.
  3. El resultado de la búsqueda se presentará en un dialog. Estudio los cambios, porque este es el mejor punto para hacer esto con egit, como creo. Puede leer todos los posts de confirmación e incluso hacer doble clic en ellos para abrir una confirmación en segundo plano y estudiar la diferencia. Sí, este dialog no es modal … por lo que puede moverlo en el segundo monitor.
  4. Hago una rebase. Lo cual es similar a una fusión, pero no deja la información desde donde comenzó su desarrollo temporal. Esta es una especie de decisión de layout que tomó mi compañía: preferir la rebase sobre la combinación.
  5. Si tiene conflictos, puede usar la herramienta de combinación para resolverlos. Esto es bastante similar a la synchronization que hizo con CVS. Recuerde hacer un Add to index ya que es la nueva mark as merged . Después deberías hacer Rebase > Continue si hiciste una rebase.
  6. Yo hago un empujón. Y si nadie empujó mientras tanto eso es todo.

Ese es mi flujo de trabajo. Si esa es la dirección correcta, puedo agregar más detalles sobre por qué hago varios pasos como lo hago y cómo creo que la mejor manera es hacerlo con egit.