¿Cómo puedo usar git rebase de forma segura cuando trabajo en múltiples computadoras?

Trabajo en el mismo proyecto en dos computadoras diferentes, computadora de escritorio y computadora portátil . A veces necesito hacer la transición entre ellos mientras estoy en medio de alguna tarea / function.

Así que quiero hacer una confirmación en la computadora portátil , y luego transportarla (empujar / tirar) al escritorio y continuar. Luego, cuando la function esté completa, quiero hacer una nueva confirmación y luego aplastarla con la confirmación a medio hacer.

¿Cómo puedo ahora tirar / empujarlo hacia la 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 commits. Actualmente estoy trabajando en la twig principal directamente, pero si trabajo en una twig separada, lo haré.

Sé cómo usar git rebase -i, y lo he usado varias veces mientras estaba en la misma computadora sin ningún problema, por lo que su respuesta no tiene que include los detalles de git rebase / squash.

Hago esto todo el time y uso el siguiente flujo de trabajo, usando github como repository maestro de autoría cuando no estoy sentado en una computadora determinada:

Cuando salgo de una computadora siempre lo hago

git push -f 

Cuando llego a una computadora lo hago

 git fetch -v git reset --hard origin/master # Assuming branchname is master 

Mientras siempre haga lo mismo, sé que mi último trabajo siempre está en github, y rebase todo lo que quiero

En general también establezco

 git config --global push.default current 

para empujar solo la twig que he revisado, algo que considero casi obligatorio cuando uso mucha fuerza forzada.