Pregunta

Actualmente estoy usando git para la gestión de varios proyectos, sin embargo, una pregunta me ha estado molestando recientemente: ¿cuál es el buen tono de la comisión de modificaciones a la rama principal y ramas secundarias? ¿Debería ser 'cometer cuando se compila', 'comprometerse cuando funciona', o algo más? Gracias.

¿Fue útil?

Solución

En realidad depende, es este tu repositorio personal o se trata de un acuerdo de recompra que es compartida por muchos desarrolladores? Hasta qué punto en el proyecto son usted?

En lo personal me comprometo a mis repositorios de subversión, cuando he terminado con un aspecto y todo se compila. No tiene que ser completa, pero no roto. Yo prefiero no dejar las cosas rotas en el primer lugar.

La mitad código escrito puede conseguir el ingreso, pero sólo en mis ramas personales, generalmente con notas acerca de lo que estaba haciendo en ese momento y lo que aún necesita hacer. Desde que uso la subversión y este es mi repo personal que utiliza principalmente para ser capaz de dejar mi escritorio y recoger una copia de seguridad donde lo dejé en mi portátil.

En general, el error / emisión / función por cometer es agradable, pero no pueden adaptarse a su estilo de desarrollo. Si se trata de un proyecto más completo que se puede hacer ejercicio ya que compromete quiere decir que usted está cruzando los elementos de una lista en algún lugar y que significa un elemento más que ahora se ha completado.

Otras cosas a tener en cuenta, lo que es significativo acerca de los cambios que merece el check-in? Por ejemplo, he comprobado en el código última noche que cambió significativamente una API interna, esto significaba que tenía que documentar los cambios en el mensaje de entrega, así como la documentación. Al mismo tiempo, también cambió algunos comentarios para arreglar error tipográfico. Eso hace que una pequeña sub-nota en el mensaje de confirmación, pero no es algo que considero un asunto lo suficientemente grande como para conseguir comprometido por su propia cuenta.

Otros consejos

Primero: No haga caso de las estrategias y las estrategias derivadas de esa mentalidad de subversión. Hay una diferencia entre salvar a un cambio y la publicación de un cambio.

El compromiso es salvar un cambio. Mientras yo no recomendaría cometer en un temporizador, sugeriría usted piensa en él más como guardar un archivo de la liberación de una versión. Hacerlo cuando tiene miedo puede que tenga que volver, pero tienen miedo de otro modo sería difícil volver a donde está.

Sin embargo, reescribir las confirmaciones (git rebase -i origin / master # por ejemplo) antes de publicarlos. Encontrar el sentido en el lío que ha hecho y crear un conjunto de confirmaciones comprensibles y limpias con buenos mensajes comprometerse y garantizar que termine cada lo comprueba la calidad que pueda tener. Entonces publicarla.

Algunas cosas básicas:

  1. Esforzaos a cometer por "cambio lógico"; corrección de errores, refactorización, característica, ...
  2. Ejecutar pruebas unitarias antes de comprometerse el código; asegurarse de que no se ha roto nada obvio (que tienen pruebas de unidad, ¿verdad).
  3. Si en un entorno multi-desarrollo; actualización desde el repositorio y ejecutar las pruebas unitarias de nuevo para asegurarse de que no hay cambios conflictivos se rompió el código de otra (la suya o la de ellos).
  4. Fijar como sea necesario y repita desde el 3 hasta que no hay nada roto.
  5. Commit inmediatamente y cruzar los dedos.
  6. Se basan en las pruebas de integración continua que le diga si algo más se rompió.

Si está utilizando un sistema de gestión de entradas, yo diría que cometen cuando se fija una tarea.

Me voy con 'comprometerse temprana, a menudo comprometerse', yo mismo. Si usted tiene un pago y envío automatizado y construir pasando, esto obviamente no va a funcionar.

Commit sólo un type de cambio a la vez.

¿Qué "tipo" significa es diferente para cada proyecto, pero algunos ejemplos populares incluyen "cambios cosméticos" vs "cambios funcionales" y "refactoring" vs "añadir nuevo". Esto hace que sea más fácil seguir los cambios cuando se mira el registro, y también más fácil volver a una revisión.

Para dar un paso hacia atrás, trato de trabajar en problemas / errores / características que se pueden completar en un corto período de tiempo. Si se va a tomar más de un día para llegar a un buen sitio para parar la tarea es demasiado grande.

Dicho esto, creo que la mejor práctica es para enviar sus cambios cuando el código se compila y se ha probado adecuadamente (a ser posible con la unidad de integración o pruebas que se confirmen con el cambio de código).

Si compila + + funciona correctamente es bien probados == 'commit cuando funciona' entonces que parece que la regla apropiada.

Commit cuando funciona . En mi caso esto significa que:. automatizar la prueba de humo, ejecutarlo y comprometerse

Nota: sus sólo las pruebas de humo que automatizo / ensayo antes de la confirmación. pruebas de regresión se dejan a la integración continua.

Commit cualquier código que no quiere escribir de nuevo:)

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top