Recientemente tuve una discusión con personas absolutamente opuestas a una estrategia de rebase de ramas de características en GIT. Parece ser un patrón aceptado para usar rebase solo para sucursales locales y privadas, pero nunca lo use cuando haya varias personas trabajando en una misma característica y rama, según esta llamada "Regla de Oro de Rebasar" (como se explica aquí: https : //www.atlassian.com/git/tutorials/merging-vs-rebasing/conceptual-overview )
Me sorprende que haya un consenso sobre esto. Trabajé 3 años con una estrategia de rebase completa, con unos 20 desarrolladores trabajando juntos y adivina qué, funcionó.
El proceso es básicamente:
- Usted crea su rama de características, llamémosla "myfeature" y la empuja a origin / myfeature
- Otras personas pueden echarle un vistazo y trabajar en ello
- A veces puede volver a crear una base desde master: desde "myfeature", git rebase origin / master ; y luego, sí, tienes que forzarlo.
- ¿Qué sucede cuando otras personas quieren forzar sus compromisos? Simplemente lo reescriben: git rebase origin / myfeature . Entonces ahora están en avance rápido y pueden empujarlo sin forzar.
El único principio a respetar es que la rama característica es propiedad de alguien . El propietario es el único que puede forzar la fuerza.
Entonces, admito: tan pronto como hay una fuerza de empuje, existe el riesgo de cometer errores. Es verdad. Pero también hay muchas maneras de recuperarse de los errores, y realmente, en 3 años de desarrollo, no vi muchos errores de fuerza, y cuando sucedió, siempre encontramos una manera de recuperarnos adecuadamente.
Entonces, ¿por qué esta "Regla de Oro de Rebase" está siendo tan ampliamente aceptada? ¿Hay algo más que me perdí con eso? Entiendo que requiere un mínimo de organización (cada estrategia requiere alguna organización), pero funciona.