¿Cómo puedo usar Git Rebase de manera segura cuando trabajo en varias computadoras?
Pregunta
Trabajo en el mismo proyecto en dos computadoras diferentes, escritorio y computadora portátil. A veces necesito hacer la transición entre ellos mientras estoy en medio de alguna tarea/característica.
Así que quiero comprometerme en el computadora portátil, y luego transportarlo (empujar/tirar) al escritorio y continuar. Luego, cuando la función está completa, quiero hacer una nueva confirmación y luego aplastarla con la comisión a medias.
¿Cómo puedo ahora tirar/empujarlo hacia el computadora portátil sin confundir la historia?
¿Cuál es la forma correcta de manejar esto? Después de hacer esto, también debo poder publicar los compromisos. Actualmente estoy trabajando en la rama maestra directamente, pero si trabajar en una rama separada ayuda, lo haré.
Sé cómo usar Git Rebase -I, y lo he usado varias veces mientras todavía está en la misma computadora sin problemas, por lo que su respuesta no tiene que incluir los detalles de Git Rebase/Squash.
Solución
Hago esto todo el tiempo y uso el siguiente flujo de trabajo, usando GitHub como repositorio maestro autorizado cuando no estoy sentado en una computadora dada:
Cuando dejo una computadora siempre hacer
git push -f
Cuando llego a una computadora lo hago
git fetch -v
git reset --hard origin/master # Assuming branchname is master
Mientras siempre hago lo mismo, sé que mi último trabajo siempre está en Github, y me rebano todo lo que quiero
Generalmente también establecí
git config --global push.default current
Para empujar solo la rama que he revisado, algo que encuentro casi obligatorio cuando usa mucho empuje forzado.