Rebase se compromete en una twig remota

Hice un proyecto en github, hice una nueva twig e hice algunos cambios (confirma B, C y D), así que tuve el siguiente tree:

... <-- A (master) \ B <-- C <-- D (branch2) 

branch2 y branch2 por error branch2 así que ahora tenía este tree:

 ... <-- A <-- B <-- C <-- D (master) 

Sin embargo, me di count de que quiero mantener una twig maestra que refleje los cambios ascendentes y haya creado myproject-master para tener mi trabajo en eso. Moví mis commits volviéndolos a colocar en esa nueva twig. Después de volver a basar, borré la parte <-- B <-- C <-- D del historial en el maestro por git reset --hard "A" . También networkinguje C y D y me referiré a ese compromiso como CD partir de ahora. Mi problema es que no puedo enviar mis cambios al maestro y tengo diferentes treees en local y remoto:

Este es el tree local (lo que quiero tener en ambos lados):

 ... <-- A (master) \ B <-- CD (myproject-master) 

Este es el tree remoto:

 ... <-- A <-- B <-- C <-- D (master) \ B <-- CD (myproject-master) 

Cuando bash presionar master, git rechaza el push para que no pierda datos. Lo cual está bien, pero ya tengo esas confirmaciones en la otra twig y me gustaría eliminarlas del maestro. ¿Cómo puedo hacer esto?

Si usted es la única persona que trabaja en el repository, es seguro hacer un "empuje de fuerza" de su twig principal al repository remoto, por ejemplo con:

 git checkout master git push -f myrepo master 

… pero como eso está reescribiendo el historial de la twig principal, tendrás que ser más cuidadoso si tienes queueboradores que ya han sacado tu master cuando estaba por delante de A