Reemplace el repository de GitHub con un nuevo proyecto de Android Studio mientras conserva los viejos commits

Tenía un viejo proyecto de Android que creo que comencé en Eclipse o en alguna versión anterior de Android Studio. De todos modos, la estructura del proyecto era completamente diferente de cómo Android Studio organiza las cosas ahora con Gradle. En lugar de intentar actualizar cada location de file, comencé de nuevo con un nuevo proyecto con el mismo nombre.

Ahora me gustaría actualizar mi repository de GitHub, pero no quiero perder mis compromisos previos, lo que al parecer haría algo como git push --force origin master (ver aquí y aquí ).

Esta pregunta es similar a Repo de Reemplazar GitHub conservando problemas, wiki, etc. , pero me gustaría saber para el caso específico de Android Studio. Además, la respuesta actual a esa pregunta no conserva el historial de compromisos.

Voy a intentar encontrar una manera de hacer esto basándome en sugerencias de aquí y de aquí . Si puedo resolverlo, publicaré mi respuesta a continuación.

  1. Cambie el nombre de su carpeta de proyecto actual (la nueva que desea poner en GitHub) a algo como MyProjectBackup .

  2. En Android Studio, vaya a Archivo> Nuevo> Archivo desde Control de versiones> GitHub . Luego inicie session con su nombre de usuario y contraseña de GitHub y select el nombre del repository de su proyecto anterior de la list de sus repositorys de GitHub. Continúe con el asistente de import y debería terminar con su proyecto anterior en Android Studio. (Ahora, por ejemplo, su proyecto anterior está en MyProject y su nuevo proyecto está en MyProjectBackup ).

  3. Elimine manualmente todo, excepto .git y .gitignore (y tal vez el .gitignore Léame y la licencia) de la carpeta del proyecto MyProject . ( git rm -r * pero estaba recibiendo errores ).

  4. Desde la línea de command en su carpeta MyProject ejecute

     git add -u git commit -m "deleting old files before adding updated project" 

    Esto actualizará los files rastreados en el tree de trabajo para todas las eliminaciones manuales que acaba de realizar.

  5. Copie todos sus files nuevos desde MyProjectBackup . Entonces corre

     git add . git commit -m "new updated project" git push 

Ahora su nuevo proyecto estará en GitHub y el historial de compromisos del proyecto anterior seguirá estando disponible.

Lectura útil

  • Fundamentos de Git: grabación de cambios en el repository