En un intento por lograr git nirvana, me paso el día aprendiendo cómo aprovechar el rebase para situaciones en las que actualmente me fusiono.
Al ejecutar lo que considero un flujo de git 101 (que deletreo a continuación), tengo que hacerlo push --force
cuando empujo mis cambios al origen.
No soy el único, sé que este es un terreno cubierto (ver 1 , 2 , 3 , 4 , 5 ) y entiendo las razones técnicas por las que es necesaria una fuerza. Mi problema es este: hay muchas (muchas) entradas de blog que alaban a rebase y cómo ha cambiado sus vidas (ver 1 , 2 , 3 , 4 para enumerar algunas), pero ninguna de ellas menciona que push --force
es parte de su flujo. Sin embargo, casi todas las respuestas a las preguntas de stackoverflow existentes dicen cosas como "sí, si vas a rebasar, debes usar push --force
".
Dado el número y la religiosidad de los defensores del rebase, tengo que creer que usar 'empujar - fuerza' no es una parte inherente de un flujo de rebase, y que si uno a menudo tiene que forzar sus empujes, está haciendo algo mal .
push --force
es algo malo .
Así que aquí está mi flujo. ¿De qué manera podría lograr los mismos resultados sin una fuerza?
Ejemplo simple
Dos ramas:
- v1.0 - una rama de lanzamiento, contiene solo parches
- master : todo para la próxima versión principal.
Tengo algunas confirmaciones de parches y algunas confirmaciones para la próxima versión.
Me gustaría incorporar los parches a mi master para que no se pierdan para el próximo lanzamiento. Pre-iluminación Yo simplemente:
git checkout master
git merge v1.0
Pero ahora lo estoy intentando
git checkout master
git rebase v1.0
Así que ahora estoy aquí:
Tiempo para:
git push
No dados.