Antecedentes: Utilizamos github para nuestro proyecto y trabajo en mi propia bifurcación de nuestro repositorio principal. Usamos rebase en lugar de fusionar para evitar grandes confusiones de fusión.git rebase en funciones de larga duración (remoto) ramas
Escenario: La manera en que yo quiero trabajar es la siguiente:
- Al implementar una nueva característica, crear una rama local de la maestra de mi tenedor y poner en mis cambios allí. I y otros miembros del grupo hacen muchas confirmaciones pequeñas, por lo que casi siempre habrá varias confirmaciones que afecten al mismo archivo en la rama.
- Empuje la rama local a mi tenedor para que tenga una copia remota de lo que estoy trabajando (no quiero perder todos mis cambios si mi computadora portátil se muere o se pierde. Intento hacerlo al final de cada día).
- Si se necesita mucho tiempo para terminar la función, de vez en cuando rebase el maestro de mi tenedor para asegurarse de que no ha habido cambios que podrían romper mi función. Esto generalmente funciona bien.
- mantener la copia remota de la rama actualizada, empujo mi sucursal local para que después del rebase.
Problema: Paso 4 es donde me dan problemas. Casi siempre tengo que lidiar con commits no rápidos y uso git push --force.
He mirado en
Git: how to maintain permanent parallel branches
How to maintain (mostly) parallel branches with only a few difference
y no han encontrado una manera de hacer mi trabajo flujo de trabajo. Hacer una búsqueda en google en los flujos de trabajo de git, en su mayoría, arroja resultados que dan por hecho que todos trabajas en ramas locales y no guardas una copia remota en github (por ejemplo, http://nvie.com/posts/a-successful-git-branching-model/).
Soy relativamente nuevo en Git, así que me gustaría saber si me falta algo aquí. Me gustaría poder hacer el paso 4 sin una fuerza. Un flujo de trabajo alternativo que todavía me permita usar rebase en lugar de combinar y mantener una copia remota de mi sucursal local también sería muy útil.
Puede evitar la condición de carrera utilizando '--force-with-lease' que fallará si el upstream es más nuevo que su local. – mLuby