Puis-je organiser les référentiels dans des dossiers sur Github?

158

Je suis nouveau sur git et ce que je fais maintenant, c'est de télécharger tous mes projets récents en tant que référentiels sur github. Il existe de nombreux projets différents comme la conception de sites Web, des thèmes wordpress et différents types d'applications. Et certains d'entre eux appartiennent également à des projets plus importants car ils visaient à tester certains éléments en tant qu'application différente.

Le problème est que j'ai maintenant une quantité déroutante de référentiels en ligne. Comment puis-je regrouper des référentiels github associés dans une structure de dossiers? Existe-t-il une fonctionnalité permettant d'ordonner et de structurer ou même d'étiqueter des référentiels sur github?

danijar
la source
1
@ user478212 La question concerne l'organisation des référentiels et non des fichiers dans un seul référentiel.
danijar
Le plus proche des «dossiers» serait aujourd'hui «projets» (février 2019): voir ma réponse mise à jour ci
VonC
Les "projets" ne simulent pas directement les dossiers. Un moyen plus direct de simuler des dossiers pourrait être d'utiliser le balisage de description, comme décrit dans ma réponse ci-dessous.
peter554

Réponses:

68

Sur GitHub lui-même, vous ne pouvez pas regrouper vos dépôts par «dossier», sauf si vous créez des organisations .
Voir SublimeText , par exemple, en tant que groupe de tous les dépôts de packages sublimeText.

Mais cela ne prend pas en charge une organisation de dossiers imbriqués. Pour l'instant (juin 2017), cela ne prend en charge qu'une structure d'organisation d' équipe imbriquée .

Mise à jour de février 2019: vous avez maintenant le concept de projet :
voir " Projets appartenant à l'utilisateur - votre espace de travail personnel "

Vous pouvez également lier jusqu'à 5 référentiels à votre tableau de projet. Lier les référentiels limitera la portée de la recherche à ces référentiels liés, afin que vous puissiez rapidement affiner les nouveaux problèmes que vous n'avez pas encore ajoutés au tableau de projet

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

GitHub prend également en charge les balises maintenant (sous forme de rubriques ).


Réponses originales 2012:

Une autre solution consiste à définir des référentiels qui référencent d'autres dépôts, déclarés comme sous-modules .

De cette façon, lorsque vous clonez l'un des dépôts (qui référence d'autres dépôts), appelés "dépôts parents", ils seront clonés dans leur propre répertoire, avec un sous-répertoire par sous-modules.

Cela ne sera pas visuellement apparent sur votre compte GitHub lui-même (car il contiendra toujours une grande liste de dépôts, encore plus grande avec les dépôts parents), mais en clonant un dépôt parent, vous y récupérerez tous ses sous-modules associés.


Le numéro 302 mentionné dans les commentaires d' AnneTheAgile en 2014 ne fait que des références maintenant ( nov.2018 )tbnorth/github_repo_tags

Le petit programme python de ce référentiel utilise l'API GitHub pour obtenir une liste de vos dépôts. et ajoutez leur nom, leur description et leur URL à un nouveau dépôt, appelé par défaut repo_tags. Au départ, chaque «problème» est étiqueté comme non classé, mais vous pouvez les étiqueter comme vous le souhaitez, en utilisant un étiquetage régulier des problèmes.

Lorsqu'il est réexécuté, repo_tags.pycrée uniquement des problèmes pour les dépôts. qui n'étaient pas déjà couverts par un problème.

VonC
la source
4
ok donc je dois utiliser de nombreuses organisations ... y a-t-il une raison pour laquelle vous ne pouvez pas structurer vos représentants par dossiers?
danijar
4
@sharthis aucune raison que je connaisse, sauf que ce n'est pas encore une fonctionnalité proposée par GitHub.
VonC
5
Note de liste de souhaits; Les balises me conviendraient également. github.com/isaacs/github/issues/302
AnneTheAgile
4
wow, incroyable qu'un service aussi grand, bien développé et populaire ne prenne pas en charge une fonctionnalité aussi basique qui existe depuis toujours.
Michael
1
@PeterByfield C'est la seule solution de contournement officielle, je vais donc m'en tenir à cela pour le moment.
VonC
9

J'utilise des organisations pour organiser des pensions. Cela permet une délimitation propre et une organisation claire, prête à être partagée si nécessaire. Par exemple:

Mes organisations

  • Jmr-iOS (dépôts iOS)
  • Jmr-Work (Repos de travail)
  • Compte utilisateur (dépôts personnels)

Toutes les prises en pension d'organisation sont publiques mais à moins que vous mettez à niveau à un compte Enterprise Cloud (25 $ / mois)

J-Dizzle
la source
1
Tous les dépôts d'organisation sont publics, même si vous passez à un compte de développeur. Donc, si vous avez besoin de mettre à niveau votre plan d'organisation en entreprise ou en équipe (prix de nos jours commence à 25 euros par mois et autorise 5 développeurs, ou vous pouvez utiliser l'entreprise à partir de 21 dollars pour chaque utilisateur, un mois)
Curious Mind
bonne prise! J'ai mis à jour pour refléter le schéma actuel, je l'utilise maintenant
J-Dizzle
4

Ce n'est pas tant une réponse qu'un avertissement.

Un effet secondaire récent de la structuration des organisations utilisant est apparu en raison de l'annonce suivante de dépôts privés gratuits pour les utilisateurs: https://blog.github.com/2019-01-07-new-year-new-github/

Les dépôts privés d'organisation ne sont toujours pas gratuits. Ainsi, l'utilisation d'organisations pour séparer les dépôts entraînera l'incapacité de votre organisation d'utiliser des dépôts privés gratuits, si c'est quelque chose dont vous avez besoin.

Michael Grégoire
la source
2

Pour commencer, vous pouvez désormais baliser les dépôts dans GitHub, sous forme de rubriques. Yay!

Mais je ne pense pas que cela résout le plus gros problème. Pour cela, j'ai essayé un système de dossiers de premier niveau (où chaque projet est un dossier dans un référentiel). J'ai également essayé un système à une branche par projet (où chaque projet est dans une nouvelle branche). Ce dernier vous permet également de tirer et de pousser chaque projet séparément! Mais, ni l'un ni l'autre n'est idéal.

Vous pouvez également vous pencher sur d'autres systèmes de contrôle de version comme subversion et mercurial . Mercurial peut également être hébergé sur Bitbucket si vous en avez besoin, et Facebook cherche même à prendre en charge des « référentiels multi-projets ».

J'aime personnellement le système de https://hg.openjdk.java.net/ (ou http://hg.netbeans.org/ ), où vous avez une configuration de dossier et chaque projet est hébergé aux points de terminaison. La meilleure façon d'y parvenir est de créer un site Web (ce que vous pouvez faire dans GitHub) avec la structure de votre projet (comme https://mvnrepository.com/ ou https://www.npmjs.com/ ).

gagarwa
la source
2

Une façon possible de simuler des dossiers consiste à ajouter des balises séparées par des virgules à la fin de la description de votre dépôt. Vous pouvez ensuite rechercher des dépôts par ces balises, car le filtre GitHub «Trouver un dépôt ...» regarde dans la description du dépôt! Un exemple:

MyRepo: fait des trucs sympas [vision par ordinateur, apprentissage automatique, python]

peter554
la source