Tengo un repositorio en github que contiene una aplicación web que se implementa en dos dominios diferentes. La aplicación tiene ligeras bifurcaciones lógicas aquí y allá para comportarse de manera diferente según el dominio en el que se implemente.
Ha llegado al punto en el que quiero dividirlo en dos repositorios separados, uno para cada dominio.
Github no me deja dividirlo en la misma organización. La búsqueda de "git duplicate repo" sugiere que debería clonar y duplicar, pero eso parece ser para mantener ambos repositorios sincronizados, lo que no quiero hacer.
¿Cuál es la mejor manera de hacerlo? Me gustaría conservar el antiguo historial de confirmaciones en la nueva copia si es posible.
git clone --bare
ygit push --mirror
son exactamente lo que desea. Esto no mantiene sincronizados ambos repositorios. Pero conserva todo , incluidas todas las ramas, etiquetas, etc. Simplemente haga esto en un directorio temporal para hacer una copia. Luego, clone la nueva copia directamente desde su control remoto en el directorio de su proyecto.Respuestas:
Simplemente cree un nuevo repositorio y envíelo desde su copia de trabajo:
Ahora tiene un nuevo repositorio
myrepo-new
, que es idéntico amyrepo-original
.fuente
push
explícitamente, y el repositorio "nuevo" no mostrará ninguna relación con el anterior.git push --all origin
Si no necesita la relación de bifurcación (por ejemplo, si desea algún tipo de repositorio alternativo desacoplado por cualquier motivo), duplicar el repositorio como se describe en sus hallazgos de Google y la respuesta de larsks está bien.
Si no desea que sea un tenedor, el apoyo Github contacto ([email protected] o https://github.com/support ), y se creará un tenedor en la misma organización para usted. (Tampoco son exigentes con esto, solo tendrá que proporcionar un nombre alternativo para el repositorio, ya que los nombres de repositorio dentro de una cuenta deben ser únicos).
Actualización : el usuario Steve Rice informa en los comentarios a continuación que el soporte de GitHub declaró que el soporte actualmente no configuraría / ya no configuraría una segunda bifurcación en su cuenta.
GitHub publicó recientemente un artículo sobre posibles alternativas para bifurcar un repositorio en la misma cuenta. Puedes leer ese artículo aquí .
fuente
Use la opción Importar repositorio de Github en el menú + en la parte superior de la página o simplemente abra
https://github.com/new/import
Esto crea un nuevo repositorio con el contenido exacto del repositorio copiado. La desventaja (la misma que la respuesta de Iarsks para los comandos de git ) es que no cuenta como un tenedor para Github.
fuente
Otra forma sería agregar el repositorio original, que se copiará, como remoto para nuestro repositorio actual.
En su terminal local, ejecute:
fuente
Solución alternativa:
Cree una nueva organización y bifíquela allí. Si el repositorio es privado, también seguirá siendo privado en la nueva organización. Luego, puede dar acceso a desarrolladores externos o quien desee al repositorio bifurcado y ellos pueden aumentar los PR al repositorio original.
fuente
¿No podría simplemente duplicar la carpeta local, eliminar las cosas de git:
Entonces, ¿crear un nuevo repositorio en esa carpeta? Parece más limpio y fácil.
fuente
./.git/
no ayudaría con la intención declarada del OP, "preservar el antiguo historial de confirmaciones en la nueva copia si es posible".