2011-10-12 22 views
8

Soy nuevo en git y lo estoy probando en este momento. En mi máquina local hago commits frecuentes. A intervalos quiero insertar el código en un repositorio central. En este momento, publico todos los commits realizados. Cuando trabajo solo esto no es un gran problema, pero cuando trabajo con varios desarrolladores en un proyecto, esto se vuelve caótico. Mientras tanto, me gustaría tener todas las confirmaciones locales conservadas en mi máquina local, por si acaso.git push, no push all local commits

¿Es esta una buena manera de trabajar con git? es posible? ¿O estoy pensando de la manera incorrecta?

+0

Ambas respuestas son una manera de hacer esto de hecho ... mucho para aprender :-) – Patrick

Respuesta

5

Una forma de lidiar con esto es hacerse una rama de desarrollo personal en su repositorio local. Es solo una rama regular, nada especial, pero las confirmaciones de la sucursal no se enviarán al depósito central cuando ejecute git push. Cuando esté listo para compartir sus cambios, combine las confirmaciones de su rama personal en la rama principal y luego puede enviarlas al repositorio central.

Una variación de esto sería comenzar una nueva sucursal para cada característica lógica en la que trabaje, para que tenga muchas ramas pequeñas de desarrollo personal en lugar de una grande. Luego puede eliminar las ramas de características una vez que las combina en la rama principal.

3

El flujo de trabajo de Git lo anima a limpiar sus compromisos locales (temprano y a menudo) en una secuencia lógica de compromisos que llevan al lector eventual paso a paso a través de la implementación de su nuevo trabajo. Esto se puede hacer usando la característica git rebase -i y otras herramientas. Con eso, puede reordenar, editar, dividir y aplastar confirmaciones según sea necesario para que todo se vea bien. A continuación, presione ese conjunto de confirmaciones para el servidor, y por supuesto también guárdelo localmente.

Este flujo de trabajo no es necesario. Puedes subir todos tus compromisos detallados al servidor (pero asegúrate de que se vuelven "caóticos"), o puedes aplastar tu trabajo en una única confirmación e impulsarlo. Sin embargo, lo que no se puede hacer razonablemente, es enviar una confirmación al servidor mientras se mantiene otro conjunto localmente.

+0

Si usa una rama, puede "enviar una confirmación al servidor mientras mantiene otro conjunto localmente". – jcoffland