update how forked actualizar github

how - Eliminar la dependencia de fork de un repositorio de GitHub



update fork github (6)

Puede ponerse en contacto con el soporte de github y pedirles que cambien su repositorio al "modo normal".

En esta página , el párrafo "Se cometió un error en un tenedor", se explica que hay que pasar ayuda para cambiar. Por lo tanto, es probable que no haya forma de hacerlo usted mismo (a menos que destruya y vuelva a crear su repositorio que se explicó anteriormente ... si lo hace, tenga cuidado si tiene entradas o una wiki adjunta a su proyecto, ya que ser eliminado!).

¿Cómo puedo hacer que GitHub olvide o desasoce que mi repositorio era originalmente una bifurcación de otro proyecto?

Hice un proyecto en GitHub. Ahora puedo ver "bifurcada de lo que sea / lo que sea". El repositorio principal "lo que sea / lo que sea" ya no se mantiene. Se me ha permitido continuar el uso del código base del repositorio original para crear un repositorio independiente.

¿Hay alguna forma de separar mi proyecto del repositorio original?


Puede duplicar el depósito bifurcado en un nuevo repositorio (sin la dependencia del fork) desde la interfaz de usuario de github, luego eliminar el bifurcado original:

  • Iniciar sesión en github
  • Seleccione el signo + en la esquina superior derecha e Importar depósito .
  • Importa tu repositorio bifurcado. El nuevo repositorio no tendrá la dependencia de la horquilla.
  • Elimine el repositorio original y bifurcado en la configuración del repositorio.

Usando la información de y Clayton , pude hacer esto con lo siguiente:

$ git clone --bare https://github.com/my/forked_repo.git <delete forked_repo on GitHub> <recreate repo on GitHub using same name> $ cd forked_repo.git $ git push --mirror

Aquí está la documentación para git clone --bare :

Haga un repositorio Git desnudo. Es decir, en lugar de crear <directory> y colocar los archivos administrativos en <directory>/.git , haga que el <directory> mismo sea $GIT_DIR . Esto obviamente implica el -n porque no hay ningún lugar para verificar el árbol de trabajo. Además, las cabezas de bifurcación en el control remoto se copian directamente en las bifurcaciones locales correspondientes, sin asignarlas a refs/remotes/origin/ . Cuando se utiliza esta opción, no se crean ramas de rastreo remoto ni las variables de configuración relacionadas.

Aquí está la documentación para git push --mirror :

En lugar de nombrar a cada referencia a presionar, especifica que todas las referencias bajo refs/ (que incluye, pero no se limita a, refs/heads/ , refs/remotes/ y refs/tags/ ) se duplican en el repositorio remoto. Los refs locales recién creados se enviarán al extremo remoto, los refs localmente actualizados se actualizarán por la fuerza en el extremo remoto, y los refs eliminados se eliminarán del extremo remoto. Este es el valor predeterminado si se establece la opción de configuración remote.<remote>.mirror .

Nota: al igual que las otras respuestas basadas en git , esto no se copiará sobre problemas que no son parte del repositorio de git como el wiki y los problemas. Per Tapio:

  • El wiki es un repositorio de git separado y puede ser manejado de manera similar por Tapio. La dirección es: [email protected]:user/repo.wiki.git .
  • Los problemas se pueden exportar a través de la API de GitHub, pero existen problemas para recrearlos, ya que solo pueden ser creados por el usuario, por lo que las importaciones perderán información.

Obtuve el problema similar y terminé usando esta página de ayuda de github para resolverlo. No me importó el wiki y el rastreador de problemas como lo fue para mi blog con un tema amablemente desarrollado por otro usuario.

Para separar un repositorio bifurcado y usarlo como propio después de varias confirmaciones sin perder todo el historial:

git clone --bare [email protected]:user/forked_repo.git

Crea un nuevo new-repository vacío en el sitio web de github. Y empuja una versión reflejada:

cd user.github.com.git/

git push --mirror [email protected]:user/new-repository.git

Se puede cambiar el nombre en github, el forked_repository con otro nombre para mantenerlo como copia de seguridad y verificar las actualizaciones si es necesario. O simplemente elimínelo.

Renombrar el new-repository al nombre original hace el trabajo. Como efecto secundario, tus commits ahora aparecen en tu historial.


Esto solo se aplica a GitHub Enterprise, no a github.com

Iniciado sesión en una cuenta que tiene privilegios de administrador:

  1. Vaya al repositorio que necesita separar: https://<ghe url>/<org>/<repo>
  2. Haga clic en el cohete "Administrador del sitio" en la esquina superior derecha
  3. Haga clic en "Red" en el panel izquierdo
  4. Haga clic en "Crear raíz" en el panel Estructura de red
  5. Aceptar

Esto fue probado en GitHub Enterprise 2.9


Asegúrese de tener todas las ramas y etiquetas importantes en su repositorio local, elimine el repositorio github, recree el repositorio a través de los medios habituales (sin bifurcación) y vuelva a enviar el repositorio local con git push --all . Tenga en cuenta que si tiene sucursales locales que no desea publicar, podría valer la pena crear un clon local temporal limpio para la operación.

Sin embargo, esto también eliminará wiki y problemas. Como el wiki es, de hecho, su propio repositorio, puede manejarse de manera similar al clonarlo y luego recrearlo y empujarlo. La dirección repo está en la página de acceso de Git de wiki ( [email protected]:user/repo.wiki.git ).

Esto deja problemas. Se pueden exportar a través de la API , pero hasta donde yo sé, solo puede crear problemas y comentarios con su persona, por lo que es imposible importarlos a la perfección.

Por lo tanto, si necesita problemas para preservar, debe recurrir al soporte de github como sugiere Thomas Moulard.