2012-07-29 14 views
13

Me gustaría obtener algunos comentarios sobre mi flujo de trabajo git porque este es mi primer uso y, a pesar de leer varios artículos y preguntas sobre desbordamiento de pila, no estoy seguro de que mi proceso sea correcto. Este es mi flujo de trabajo actual (nótese que estoy usando la aplicación Github para Windows para todas mis interacciones git):Flujo de trabajo de Github para desarrollador único

  1. Decida cuál será la siguiente característica que implementaré.
  2. Crea una rama con un nombre descriptivo adecuado para la característica. Hago esto haciendo clic en el botón de rama en Github para Windows y escribiendo un nuevo nombre.
  3. Escriba un código.
  4. Confirme esos cambios en mi nueva sucursal.
  5. Escribe un poco más de código.
  6. Confirme esos cambios en mi nueva sucursal.
  7. He terminado de implementar la función, así que quiero fusionar mis cambios de nuevo en la rama principal. Entonces hago clic en el botón 'administrar' debajo del encabezado de la rama.
  8. Fusiona la nueva rama en la rama principal.
  9. Eliminar la nueva rama.

Estoy muy contento con el proceso hasta el paso 7, momento en el cual estoy un poco confundido. Creo que mi confusión radica en el hecho de que estoy tratando de usar la aplicación Github para Windows en lugar de usar la línea de comando. La aplicación parece facilitar las cosas, pero hay un poco de desconexión en mi comprensión entre algunos de los comandos/instrucciones que veo mencionados y las acciones que tomaría en la aplicación.

Déjeme preguntarle algunas preguntas específicas:

  1. Es mi flujo de trabajo realmente correcto? Si no, ¿qué tiene de malo y cómo puedo mejorarlo?
  2. ¿Debería estar "publicando" mis cambios en la nueva sucursal? Tengo entendido que esto es el equivalente de hacer git push en la línea de comando. ¿Es eso cierto? Si es así, creo que solo querría hacer eso cuando termine de implementar la función o esté en buen estado.
  3. ¿Debo eliminar la rama cuando la he fusionado en la rama principal o debería dejarla para siempre?
  4. ¿Necesito publicar la rama maestra cuando he completado la fusión o esto es implícito?
  5. veces soy incapaz de realizar la fusión y obtener este mensaje de error:

    No es posible fusionar

    No se ha podido fusionar 'prueba' en 'maestro'. Es posible que deba abrir un shell y depurar el estado de este repositorio.

Cuando esto ocurrió antes, yo era capaz de cambiar a la rama principal y combinar la nueva rama en la rama principal sin embargo, que ya no funciona. No importa en qué rama estoy, no puedo fusionar las dos ramas. Ambos están sincronizados y publiqué todos los cambios desde mi rama de prueba. ¿Qué debería estar escribiendo en el intérprete de comandos para descubrir por qué no puedo fusionar las sucursales?

Como referencia, estos son los principales vínculos que han impulsado a mi proceso:

  1. Scott Chacon on the workflow at Gitub
  2. Git workflow for a single developer on a local repository
  3. Git workflow for a single user

Respuesta

4

Lo que usted describe suena como un flujo de trabajo de ramificación común que funciona muy bien incluso para múltiples desarrolladores en la misma base de código. Está completamente cubierto por git flow que es una extensión de la línea de comandos de git para automatizar ciertos pasos. Vale la pena echarle un vistazo.

No soy un gran admirador de las herramientas UI para git. Estoy usando la línea de comando la mayor parte del tiempo. Entonces no tengo experiencia con GitHub para Windows. Pero apuesto a que tus problemas ocurren porque tus fusiones ya no son rápidas. Esto requeriría un paso de fusión manual que (afaik) no está cubierto por la herramienta.

No hay una razón de peso para mantener las ramas alrededor después de fusionarlas en la parte superior. Pero uno es rastrear qué cometidos entraron en cierta característica. Sugeriría publicar las ramas si decides guardarlas. No depende del código que se encuentra en su máquina local. Mantener las ramas no hace que tu repositorio sea mucho más grande por cierto, pero contamina la vista. La mayoría de las veces, las confirmaciones están presentes de todos modos en su rama ascendente.

Usted tendrá que publicar (push) su rama principal después de la fusión en.

para familiarizarse con la herramienta de línea de comandos git Sugiero comenzar con el Introduction to Git and GitHub de los chicos de GitHub y seguir sus enlaces de referencia para más detalles .

Espero que ayude

+0

Gracias - ¡es bueno saber que estoy en el camino correcto! Todavía estoy un poco confundido por las ramas y creo que de ahí viene mi dolor de cabeza. Cuando creo una nueva sucursal en Github para Windows, ¿debería esperar crear un nuevo directorio en alguna parte? Porque si no es así, ¿no estoy editando el código que está en mi rama principal? – Stu

+0

Git almacena todo en un grupo de deltas en la carpeta .git. Entonces, cuando crea una nueva sucursal, es como si estuviera trabajando en una copia de su rama maestra/clonada. Pero todo está en la misma carpeta (confirme algunos cambios y voltee las ramas y vuelva a abrir el archivo para ver). Esté atento a qué rama ha revisado, porque puede ser fácil comenzar a escribir un montón de cosas, olvidando que no cambió de ramas y termina por comprometerse con el maestro en lugar de su rama de características. Ahí es donde los escondites son muy útiles. – yellottyellott

+0

Disculpas por no aceptar esto como la respuesta a mi pregunta antes, de alguna manera parece haber perdido tu último comentario que respondió a todas mis preguntas. ¡Muchas gracias! – Stu

Cuestiones relacionadas