Completamente reemplazando repository, twigs y confirmaciones de GitHub

Tengo un proyecto en GitHub con 11 sucursales. Esto tenía que permanecer como estaba mientras reconstruía el proyecto usando una versión posterior de una de las tecnologías.

Reconstruí el proyecto en un repository privado de BitBucket. Esto también tiene 11 twigs y un historial de compromiso completamente diferente.

He duplicado el repository original de GitHub para que todavía haya acceso público al código 'anterior'. El siguiente paso es eliminar los contenidos del repository original de GitHub y replacelos con los contenidos del repository BitBucket.

No quiero eliminar / cambiar el nombre del repository de GitHub ya que tiene algunos observadores y estrellas: esas personas deberían get la última versión del código.

Entonces, la pregunta es: ¿cómo elimino las twigs y el contenido de un repository de GitHub, y lo reemploop con las twigs, el contenido y el historial de uno diferente?

Idealmente terminaría con la versión de BitBucket siendo el control remoto y GitHub el origin .

No lo he probado yo mismo, pero de acuerdo con los documentos de git push , debes usar el indicador --mirror .

 git push --mirror <name of github remote> 

Actualización : Acabo de probarlo y parece funcionar como esperaba. Obligará a su control remoto a verse exactamente como su repository local, lo que incluye eliminar / agregar twigs y tags, y actualizar twigs forzosamente.

Si lo entiendo correctamente, puede usar forzar push para replace el contenido del repository de GitHub.

 git push -f