Copiar / bifurcar un repositorio de git en github en la misma organización


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 dependiendo del dominio al que se despliegue.

Ha llegado el punto en el que quiero dividirlo en dos repositorios separados, uno para cada dominio.

Github no me deja bifurcarlo en la misma organización. La búsqueda de "git duplicate repo" sugiere que debería clonar desnudo y empujar el espejo, pero eso parece ser para mantener ambos repositorios sincronizados, lo cual no quiero hacer.

¿Cuál es la mejor manera de hacer esto? Me gustaría preservar el antiguo historial de confirmaciones en la nueva copia si es posible.

Author: Sebastian, 2014-03-31

5 answers

Simplemente crea un nuevo repositorio y envíalo desde tu copia de trabajo:

git clone [email protected]:me/myrepo-original
cd myrepo-original
git remote set-url origin [email protected]:me/myrepo-new
git push origin master

Ahora tienes un nuevo repositorio, myrepo-new, que es idéntico a myrepo-original.

 78
Author: larsks,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-03-31 17:13:08

Si no necesita la relación de bifurcación (por ejemplo, desea algún tipo de repositorio alternativo desacoplado por cualquier razón), duplicar el repositorio como lo describe Google finds y la respuesta de larsk está bien.

Si quieres convertirlo en un fork, ponte en contacto con el soporte de Github ([email protected] o https://github.com/support ), y crearán una bifurcación en la misma organización para usted. (No son quisquillosos acerca de esto tampoco, solo tendrá que proporcionar un nombre alternativo para el repo, ya que los nombres de repo 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 no configuraría actualmente/ya no establecería una segunda bifurcación en tu cuenta. Todavía puede intentar preguntarles, ya que los empleados de soporte podrían hacerlo, pero esto también podría ser un cambio de política que les impida hacerlo.

 8
Author: Nevik Rehnel,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-10-08 18:00:50

Otra forma sería agregar el repositorio original, para ser copiado, como remoto para nuestro repositorio actual.

#create a new repo in the org1 organization called myrepo-new

En su terminal local, ejecute:

git clone [email protected]:org1/myrepo-new
cd myrepo-new
git remote -v #shows current repo link on github as origin
git remote add name-for-remote https://github.com/org1/repo-old
git remote -v #shows repo-old as name-for-remote
git fetch  name-for-remote
git merge name-for-remote/branch-to-get-from-remote
#Now fix any conflicts if present
#If number of files/commits is very high, the desktop client may hang when you try to commit your changes after merge. Try switching to Git Shell if this happens.
git status 
git commit -m "commit message"
git push origin master
 2
Author: Vinay Vemula,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-07-07 11:53:29

Use la opción de Github Import Repository en el + menú en la parte superior de la página

Esto crea un nuevo repositorio con el contenido exacto del repositorio copiado. La desventaja es que no cuenta como una bifurcación para Github.

 1
Author: sarob,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-07-09 13:03:24

¿No podrías simplemente duplicar la carpeta local, eliminar las cosas de git:

rm -rf .git*

Entonces hacer un nuevo repositorio en esa carpeta? Parece más limpio y fácil.

 -1
Author: Ben Wilson,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-02-19 02:36:02