tag - git commit frecuencia
how to delete tag git (10)
Desde que cambié a git desde svn, comencé a hacer más confirmaciones cada vez que recompilé y pasé mis pruebas y confirmé mi trabajo. Al final termino cometiendo función por función.
También hago un seguimiento de algunos otros proyectos usando git como emacs, wordpress, etc. Veo que no se comprometen tan a menudo. Así que me pregunto, ¿con qué frecuencia se comprometen?
Al final termino cometiendo función por función.
No olvides que podrías " git add
" función por función, haciendo solo un commit:
- Una vez que todas las funciones están escritas o fijas para una tarea determinada
- o una vez que se dé cuenta de que la función actual es demasiado grande / complicada para ser parte de un compromiso en el corto plazo: entonces puede confirmar lo que está actualmente "en el escenario" ("git added"), que no incluiría sus modificaciones actuales en el trabajo directorio.
Entonces, el número de confirmaciones puede estar relacionado con el propósito de la rama:
- Sucursal local: volverte loco, cometer cuando quieras.
- rama "pública" (una que empujarás):
- para un repositorio local (para un grupo seleccionado de personas): usted podría reagrupar al menos las confirmaciones "intermedias" muy pequeñas
- para un repositorio público (para todos los desarrolladores, u otros proyectos para ver): puede hacer una rebase interactiva para reagrupar su compromiso por "actividad" o "tarea" con el fin de hacerlos más legibles.
En resumen, las "consideraciones de publicación " pueden, en un VCS D (como en "Distribuido"), guiarlo para hacer el número correcto de confirmaciones por los motivos correctos.
También hago un seguimiento de algunos otros proyectos usando git como emacs, wordpress, etc. Veo que no se comprometen tan a menudo.
Una de las cosas agradables de git es que puedes cometer tantas veces como quieras, y luego, cuando quieras hacer un compromiso ascendente, puedes aplastar varios compromisos relacionados en un solo compromiso limpio usando git-rebase
.
Cuanto más te comprometas, más fácil es encontrar errores con git bisect.
La guía para el proyecto Git en sí (y el proyecto Linux, AFAIK) es un compromiso por "conjunto de cambios lógicamente separado".
Esto es un poco ambiguo, pero probablemente no quiera comprometerse cada pocos días si está trabajando en un proyecto constantemente, y probablemente no quiera comprometerse después de cada cambio de función, si ha editado varias funciones en En varios archivos diferentes, desea confirmar todas las funciones relacionadas si es posible y proporcionar un mensaje de confirmación útil con ellos. Todo el código modificado en cada confirmación debe estar relacionado, pero ciertamente puede (y probablemente debería) estar en varios archivos.
Lo que probablemente quieras tener en cuenta es en las revisiones de código. Si alguien está tratando de decidir si debería fusionar su trabajo, es mucho más fácil para ellos procesar el trabajo que se está introduciendo si tiene cada compromiso contenido lógicamente y separado uno del otro. Eso le permite a usted (u otros) trabajar con Cherry Pick de manera efectiva, si tiene tres confirmaciones con una función modificada en cada una pero todas están acopladas de alguna manera, no puede aplicar una sin las otras dos sin romper el código base, entonces probablemente deberían ser aplastado a un solo compromiso.
Lo que estás haciendo me suena bien. Cada vez que tenga una configuración de trabajo a la que quiera volver si hace algún error es un buen momento para comprometerse. Si tiene una buena configuración donde la ejecución de las pruebas de regresión es rápida y fácil, podría verlo con bastante frecuencia. Para mí, tendría la suerte de hacer uno a la semana.
Me comprometo bastante lejos. git no está diseñado para "respaldar" su código, debe usar tarballs o dropbox o algo para asegurarse de no perder el código.
Si no te comprometes muy a menudo, puedes decir mejor qué debe ir en qué cometa y te da un historial más suave que 50 comillas con
"oops", "damn", "olvidé ese archivo"
Puede volver a realizar la fase inicial, pero si en primer lugar nunca realiza / cometa, no hay necesidad de deshacer su trabajo.
Me comprometo después de agregar o cambiar la funcionalidad y tener una prueba exitosa. O cuando vaya a cambiar mi computadora de escritorio a una computadora portátil y quiera ingresar el código, me comprometo y presiono.
Nuestras necesidades comerciales nos comprometen con la sucursal inestable cuando se compila el programa, y nos comprometemos con la sucursal estable cuando pasa la prueba de la unidad y el cliente la ha revisado (mientras estaba bajo la sucursal inestable).
Realmente depende.
Lo que hago es que me comprometo localmente a menudo, ya que suena como si lo estuvieras haciendo, pero solo presiono mis cambios cuando he acumulado varios influyentes.
Esto asegura que guarde mi trabajo, pero tampoco desordena el repositorio para otros usuarios.
Tan pronto como pasan las pruebas, o cuando se agrega / elimina / modifica una unidad de funcionalidad.