Creando un espejo oficial de github


108

¿Cómo creo un espejo github para un repositorio de git externo, de modo que aparezca como "espejo real", por ejemplo, como en https://github.com/mirrors ?

Hasta ahora, configuré un espejo usando:

cd /path/to/bare/repository
git remote add --mirror github git@github.com:user/repo.git

y configure el gancho de recepción posterior para hacer un git push --quiet github. De esta manera, sin embargo, github no reconoce el espejo.

¿Alguna idea de cómo hacerlo de la manera github, de modo que "Mirrorred from" aparezca debajo del nombre del repositorio?


2
github.com/apache/libcloud otro ejemplo de repositorio reflejado, todo de Apache LOL
Colin Su

Respuestas:


113

Basándome en la comunicación con el equipo de soporte de GitHub, descubrí que GitHub actualmente no ofrece ningún mecanismo directo para que un usuario refleje los repositorios de esta manera.

Sin embargo, se puede pedir a GitHub que instale este servicio para los repositorios que forman parte de una organización. Luego, GitHub configura un repositorio existente como un espejo y lo extrae en un intervalo que es una función del número de espejos generales que tienen.

EDITAR : como señala Stuart, GitHub ya no acepta solicitudes para duplicar repositorios arbitrarios. La única opción restante es la solución que publiqué en mi pregunta, es decir, crear un enlace posterior a la recepción para enviarlo automáticamente a su repositorio de GitHub.


9

A juzgar por el contenido actual de https://github.com/mirrors , parecería que GitHub ya no tiene "réplicas oficiales", ya que la mayoría de los proyectos que quieren que su código se refleje en GitHub hoy simplemente crean una organización para ello, como el propio Git. .

También hay una solicitud de función en: https://github.com/isaacs/github/issues/415


De hecho, algunos de ellos tienen repositorios reflejados en GitHub. Todavía lo hacen, pero solo si eres un desarrollador del proyecto, es decir, sin espejos "no oficiales".
nyuszika7h

Y como dicen, solo para organizaciones.
nyuszika7h


4

Según Importing a Git :

Para fines de demostración, usaremos:

  • Una cuenta externa llamada extuser
  • Una cuenta de usuario personal de GitHub llamada ghuser
  • Un repositorio de GitHub llamado repo.git

La línea de comando:

# Makes a bare clone of the external repository in a local directory  
$ git clone --bare https://githost.org/extuser/repo.git

# Pushes the mirror to the new GitHub repository
$ cd *repo.git*
$ git push --mirror https://github.com/ghuser/repo.git

# Remove the temporary local repository.
$ cd ..
$ rm -rf repo.git

1
¿Cuál es la diferencia entre git clone --barey git clone --mirror? ¿No es la segunda variante más adecuada aquí?
user7610

0

He utilizado una herramienta llamada github-backup con un éxito moderado para, si no reflejar, al menos hacer una copia de seguridad completa (incluidos los problemas y otros metadatos) de un usuario u organización de Github. Para citar el archivo README :

Cada vez que ejecute github-backup, encontrará nuevas bifurcaciones en GitHub. Agregará controles remotos a su repositorio para las bifurcaciones, usando nombres como github_torvalds_subsurface. Se buscará en cada tenedor.

Descarga metadatos de cada bifurcación. Esto se almacena en una rama llamada "github". Cada bifurcación tiene un directorio allí, como torvalds_subsurface. Dentro del directorio habrá algunos archivos, como torvalds_subsurface/watchers. Puede haber más directorios, al igual que para los comentarios: torvalds_subsurface/comments/1.

Puede seguir las confirmaciones de la rama de github para ver qué información cambió en GitHub con el tiempo.

El formato de los archivos en la rama github es actualmente tipos de datos serializados de Haskell. Este es texto sin formato y se puede leer si entrecierra los ojos.

Las limitaciones incluyen:

  • sin soporte de repositorio privado
  • nada de cosas "sociales" como estrellas, seguidores, etc.
  • las notas a las líneas de confirmaciones no son compatibles (¿todavía?)
  • etiquetas de emisión
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.