¿Puedo organizar repositorios en carpetas en Github?

158

Soy nuevo en git y lo que estoy haciendo ahora es subir todos mis proyectos recientes como repositorios a github. Hay muchos proyectos diferentes como diseño web, temas de WordPress y diferentes tipos de aplicaciones. Y algunos de estos también pertenecen a proyectos más grandes porque trataban de probar algunas cosas como una aplicación diferente.

El problema es que ahora tengo una cantidad confusa de repositorios en línea. ¿Cómo puedo agrupar repositorios de github relacionados en una estructura de carpetas? ¿Existe alguna función que brinde alguna capacidad para ordenar y estructurar o incluso etiquetar repositorios en github?

danijar
fuente
1
@ user478212 La pregunta es sobre la organización de repositorios, no de archivos dentro de un único repositorio.
danijar
La más cercana de las "carpetas" sería hoy "proyectos" (febrero de 2019): vea mi respuesta actualizada a continuación
VonC
Sin embargo, los "proyectos" no simulan directamente carpetas. Una forma más directa de simular carpetas podría ser usar el etiquetado de descripción, como se describe en mi respuesta a continuación.
peter554

Respuestas:

68

En GitHub, no puede agrupar sus repositorios por "carpeta", a menos que cree organizaciones .
Vea SublimeText , por ejemplo, como un grupo de todos los repos de paquetes de sublimeText.

Pero eso no admitirá una organización de carpetas anidadas. Por ahora (junio de 2017), eso solo admite una estructura de organización de equipo anidada .

Actualización de febrero de 2019: ahora tiene el concepto de proyecto :
consulte " Proyectos propiedad del usuario: su espacio de trabajo personal "

También puede vincular hasta 5 repositorios a su tablero de proyecto. La vinculación de repositorios limitará el alcance de la búsqueda a esos repositorios vinculados, por lo que puede reducir rápidamente cualquier problema nuevo que aún no haya agregado al tablero del proyecto

https://i0.wp.com/user-images.githubusercontent.com/3477155/52346373-734e2580-29ed-11e9-82ad-9e5f1ab8aa99.gif?resize=1024%2C512&ssl=1

GitHub también admite etiquetas ahora (en forma de temas ).


Respuestas originales 2012:

Otra solución es definir repositorios que hagan referencia a otros repositorios, declarados como submódulos .

De esa manera, cuando clones uno de los repositorios (que hace referencia a otros repositorios), llamados "repositorios principales", se clonarán en su propio directorio, con un subdirectorio por submódulos.

No será visualmente aparente en su cuenta de GitHub (ya que todavía contiene una gran lista de repositorios, incluso más grande con los repositorios principales), pero al clonar un repositorio principal, obtendrá todos sus submódulos asociados.


El tema 302 mencionado en los comentarios de AnneTheAgile en 2014 solo hace referencia ahora (noviembre de 2018)tbnorth/github_repo_tags

El pequeño programa de Python en este repositorio utiliza la API de GitHub para obtener una lista de sus repositorios. y agregue su nombre, descripción y URL a un nuevo repositorio, por defecto llamado repo_tags. Inicialmente, cada "problema" se etiqueta sin clasificar, pero puede etiquetarlos como desee, utilizando el etiquetado de problemas regular.

Cuando se vuelve a ejecutar, repo_tags.pysolo crea problemas para repos. que ya no estaban cubiertos por un problema.

VonC
fuente
44
ok, así que tengo que usar muchas organizaciones ... ¿hay alguna razón por la que no puedas estructurar tus representantes por carpetas?
danijar
44
@sharethis no hay razón que yo sepa, excepto que aún no es una característica propuesta por GitHub.
VonC
55
Nota de la lista de deseos; Las etiquetas también estarían bien para mí. github.com/isaacs/github/issues/302
AnneTheAgile
44
wow, increíble que un servicio tan grande, bien desarrollado y popular no sea compatible con una característica tan básica que ha existido desde siempre.
Michael
1
@PeterByfield Esa es la única solución oficial, así que me quedaré con eso por ahora.
VonC
9

Yo uso Organizaciones para organizar repositorios. Esto permite una delineación limpia y una organización clara, perfecta para compartir si es necesario. Por ejemplo:

Mis organizaciones

  • Jmr-iOS (repositorios de iOS)
  • Jmr-Work (repos de trabajo)
  • Cuenta de usuario (repositorios pers)

Sin embargo, todos los repositorios de la organización son públicos, a menos que actualice a una cuenta de Enterprise Cloud ($ 25 / mes)

J-Dizzle
fuente
1
Todos los repositorios de la organización son públicos, incluso si actualiza a una cuenta de desarrollador. Entonces, si necesita actualizar el plan de su organización a empresa o equipo (el precio hoy en día comienza desde 25 euros al mes y permite 5 desarrolladores, o puede usar la empresa desde 21 dólares por cada usuario, un mes)
Curious Mind
¡buena atrapada! He actualizado para reflejar el esquema actual, estoy usando esto ahora
J-Dizzle
4

Esta no es una respuesta tanto como un aviso.

Un efecto secundario reciente de la estructuración de las organizaciones que utilizan ha salido a la luz debido al siguiente anuncio de repositorios privados gratuitos para los usuarios: https://blog.github.com/2019-01-07-new-year-new-github/

Los repositorios privados de la organización aún no son gratuitos. Por lo tanto, el uso de organizaciones para separar repos resultará en la incapacidad de su organización para utilizar repositorios privados gratuitos, si eso es algo que necesita.

Michael Gregoire
fuente
2

Para empezar, puede etiquetar repos ahora en GitHub, en forma de temas. ¡Hurra!

Pero no creo que resuelva el problema más grande. Para esto, probé un sistema de carpetas de nivel superior (donde cada proyecto es una carpeta en un repositorio). También probé una rama por sistema de proyecto (donde cada proyecto está en una nueva rama). ¡Este último le permite tirar y empujar cada proyecto por separado también! Pero tampoco es lo ideal.

También puede buscar en otros sistemas de control de versiones como subversion y mercurial . Mercurial también se puede alojar en Bitbucket si lo necesita, y Facebook incluso está buscando soporte para " repositorios de proyectos múltiples ".

Personalmente, me gusta el sistema de https://hg.openjdk.java.net/ (o http://hg.netbeans.org/ ), donde tiene una configuración de carpeta y cada proyecto está alojado en puntos finales. La mejor manera de lograr esto es mediante la creación de un sitio web (que puede hacer en GitHub) con la estructura de su proyecto (como https://mvnrepository.com/ o https://www.npmjs.com/ ).

Gagarwa
fuente
2

Una posible forma de simular carpetas es agregando etiquetas separadas por comas al final de la descripción de su repositorio. A continuación, puede buscar repositorios por estas etiquetas, ya que el filtro 'Encontrar un repositorio ...' de GitHub se ve en la descripción del repositorio. Un ejemplo:

MyRepo: hace algunas cosas interesantes [visión artificial, aprendizaje automático, python]

peter554
fuente