Buenas prácticas
Usa ramas de funcionalidad
Crea una rama nueva para cada funcionalidad o corrección de bug en vez de trabajar directamente en la rama main.
Una rama de funcionalidad (feature branch) es cualquier rama creada para desarrollar una funcionalidad concreta o corregir un bug concreto.
Fusiona las ramas de funcionalidad en main solo cuando la funcionalidad esté completa y probada. Así mantienes tu trabajo aislado y resulta más fácil gestionar los cambios. Con este enfoque, la rama main siempre contiene código estable listo para producción.
Imagina que tienes que implementar la autenticación con Facebook en la aplicación cliente.
Mal
- Empiezas a trabajar en la funcionalidad directamente, creando commits en la rama
main. Al final del día, tienes unos cuantos commits que implementan la funcionalidad a medias. - De repente, te llama tu responsable y te pide corregir un bug crítico del sistema de inicio de sesión actual y publicarlo de inmediato.
- Aunque la corrección en sí es trivial, te das cuenta de que, si publicas ahora, el código del login con Facebook a medio hacer también irá incluido en la versión. ¡Ups!
La cosa empeora aún más cuando trabajas en equipo. Imagina a todo el mundo trabajando en la rama
main: código a medio hacer de varios desarrolladores mezclado, imposible de distinguir qué está listo para publicar y qué no. El resultado es confusión, compilaciones fallidas y tiempo perdido. Bien
- Creas una rama nueva llamada
feature/facebook-login(o como prefieras) y empiezas a trabajar allí en la funcionalidad. Creas tus commits en esa rama, manteniendomainlimpia y estable. - Si aparece una corrección de bug inesperada, cambias a la rama
main, creas otra rama llamadabugfix/login-issuee implementas la corrección allí. Cuando está probada, esa rama de corrección se fusiona enmain. Se publica la versión y todo el mundo contento. - Vuelves a tu rama
feature/facebook-login, haces ungit rebasepara incorporar los últimos cambios demaina tu rama de funcionalidad y sigues trabajando. Cuando la funcionalidad está completa, la vuelves a fusionar enmain.
Conceptos clave
Buenas prácticas
Comandos de Git
Conceptos básicos
git initgit addgit commitgit helpRamas
git branchgit switchgit mergegit rebaseEstado/historial
git statusgit loggit diffgit showgit blamegit reflogRevertir cambios
git resetgit restoregit revertgit cleangit stashRepositorios remotos
git clonegit fetchgit pullgit pushgit remoteOtros
Archivo .gitignoregit checkoutgit configgit taggit worktree¡Buen trabajo!
¡Has desbloqueado todas las entradas de Gitopedia!