El mejor flujo de trabajo al bifurcar y renombrar un proyecto de GitHub

Estoy tratando de descubrir el mejor flujo de trabajo para trabajar con un fork de un proyecto de código abierto existente en Github. Quiero tomar un proyecto existente y realizar cambios significativos en él, en este caso para transferirlo a Android y agregar funcionalidad específica de Android únicamente. Me gustaría satisfacer lo siguiente:

  1. Ser capaz de sacar los cambios de su repository público al nuevo puerto de Android a medida que se actualiza el código original.
  2. Ser capaz de sumbitar cambios (a través de requestes de extracción) al proyecto original cuando soluciono errores que no son solo aplicables al puerto de Android.
  3. Tener una versión separada del proyecto para dejar en claro que es un puerto de Android. Miré el cambio de nombre de un tenedor y Github me dio grandes advertencias sobre cómo hacer esto.

Mi idea inicial es que doblaría el proyecto original, luego bifurcaría y cambiaría el nombre de mi tenedor para darme los siguientes resúmenes:

original-author/projectA nicstrong/projectA nicstrong/projectA-android 

Esto me permitiría trabajar en mis cambios locales de repo local / projectA-android push a nicstrong / projectA-android. Luego, para actualizar desde el proyecto original, pude rebase nicstrong / projectA a la más reciente desde original-author / projectA luego get / fusionar de nicstrong / projectA a local / projectA-android.

Mis preguntas son:

  1. Soy bastante nuevo en todo esto de Git. ¿Esto parece un buen enfoque? ¿O hay un mejor flujo de trabajo para manejar este escenario?
  2. ¿Cómo manejaría empujar desde projectA-android de nuevo a nicstrong / projectA para que pueda configurar la request de extracción para el proyecto original?

1 / Sí, parece ser el enfoque más seguro, ya que cualquier modificación que finalice en back-porting en nicstrong/projectA estará en un proyecto con la misma estructura que original-author/projectA .
Eso significa que las requestes de extracción serán más fáciles de organizar, ya que estará en un proyecto que refleja el proyecto original del autor.

2 / Si tiene una refactorización masiva en nicstrong/projectA-android , crearía una twig backport , fusionar cuidadosamente o seleccionar cuidadosamente lo que necesita de los numerosos cambios en la twig backport , y luego nicstrong/projectA esa twig a nicstrong/projectA .
(lo que significa que ha agregado nicstrong/projectA como un control remoto de nicstrong/projectA-android )

El nombre de un repository git depende en gran medida del nombre del control remoto. Continúa y clona, ​​luego simplemente agrega un nuevo control remoto (con un nombre diferente) y comienza a presionar allí. En ese punto, por supuesto, puede continuar y cambiar el nombre del directory del proyecto sin problema.