web-dev-qa-db-fra.com

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

Je suis nouveau sur git et ce que je fais maintenant est de télécharger tous mes projets récents en tant que dépôts sur github. Il y a beaucoup de projets différents tels que webdesign, thèmes wordpress et différents types d'applications. Et certains d'entre eux appartiennent également à des projets plus importants, car ils étaient sur le point de tester certaines choses en tant qu'application différente.

Le problème est que j'ai un nombre déroutant de dépôts en ligne maintenant. Comment regrouper des référentiels github associés dans une structure de dossiers? Existe-t-il une fonctionnalité permettant d’organiser et de structurer ou même de stocker des référentiels sur github?

101
danijar

Sur GitHub lui-même, vous ne pouvez pas grouper votre dépôt par "dossier", à moins de créer organisations .
Voir SublimeText , par exemple, en tant que groupe de tous les repos de paquets sublimeText.

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

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 relier jusqu'à 5 référentiels à votre tableau de projet. La liaison de référentiels limitera la portée de la recherche à ces référentiels liés. Vous pourrez ainsi réduire rapidement 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 supporte également les tags maintenant (sous la forme de topics ).


Réponses originales 2012:

Une autre solution consiste à définir des référentiels référençant d'autres référentiels, déclarés sous la forme submodules.

Ainsi, lorsque vous clonez l'un des dépôts (qui référencent d'autres repos), appelés "repos parent", ils seront clonés dans leur propre répertoire, avec un sous-répertoire par sous-module.

Cela ne sera pas visible sur votre compte GitHub lui-même (car il contiendra toujours une longue liste de pensions, encore plus longue avec les pensions parent), mais en clonant un référentiel parent, vous y retrouverez tous les sous-modules associés.


Le numéro 302 mentionné dans les commentaires de AnneTheAgile en 2014, à présent, référence (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 référentiel, appelé par défaut repo_tags. Initialement, chaque «problème» est étiqueté non classé, mais vous pouvez les étiqueter à votre guise, en utilisant un étiquetage régulier.

Lors de la réexécution, repo_tags.py crée uniquement des problèmes pour les dépôts. qui n'étaient pas déjà couverts par un problème.

42
VonC

J'utilise Organisations pour organiser des mises en pension. Cela permet une délimitation nette et une organisation claire, prête à être partagée si nécessaire. Par exemple:

Mes organisations

  • Jmr-iOS (repos iOS) 
  • Jmr-Work (Repos de travail)
  • Utilisateur Acct (Rep repos Pers)

Tous les dépôts d’organisation sont publics, sauf si vous mettez à niveau vers un compte développeur (7 $/mois)

5
J-Dizzle

Ce n'est pas une réponse, mais un heads-up.

Un effet secondaire récent de la structuration des organisations utilisant des organisations est apparu suite à l'annonce suivante de mises en pension privées gratuites pour les utilisateurs: https://blog.github.com/2019-01-07-new-year-new-github/

Les dépôts privés de l'organisation ne sont toujours pas gratuits. Si vous utilisez des organisations pour séparer les pensions, votre organisation ne sera plus en mesure d'utiliser des pensions privées gratuites, si vous en avez besoin.

1
Michael Gregoire

Un moyen possible de simuler des dossiers consiste à ajouter des balises séparées par des virgules à la fin de la description de votre référentiel. Vous pouvez ensuite rechercher des dépôts à l'aide de ces balises, car le filtre "Rechercher un référentiel ..." de GitHub apparaît dans la description du référentiel! Un exemple:

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

Si vous ne voulez pas le faire manuellement, vous pouvez automatiser. Par exemple, j'ai créé un outil d’organisation des dépôts GitHub qui utilise précisément Angular, Octokit et Dragula. Vérifiez-le ici si vous êtes intéressé: https://github.com/Peter554/github-repo-tagger/ . Il vous permet de créer et de gérer des tags, et peut également vous créer un «nuage de tags» dans votre bio pour une recherche facile.

 github-repo-tagger

1
Peter554

Pour commencer, vous pouvez maintenant marquer les dépôts dans GitHub, sous la forme de sujets. 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 niveau supérieur (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 se trouve dans une nouvelle branche). Ce dernier vous permet de tirer et de pousser chaque projet séparément aussi! Mais, ni est idéal.

Vous pouvez également consulter d'autres systèmes de contrôle de version tels que Subversion et Mercurial . Mercurial peut également être hébergé sur Bitbucket si vous en avez besoin, et Facebook étudie même la possibilité de prendre en charge " les référentiels multi-projets ".

Personnellement, j'aime bien le système https://hg.openjdk.Java.net/ (ou http://hg.netbeans.org/ ), dans lequel vous avez un dossier de configuration et chaque projet est hébergé sur des terminaux. Le meilleur moyen d'y parvenir consiste à créer un site Web (que vous pouvez créer dans GitHub) avec la structure de votre projet (par exemple, https://mvnrepository.com/ ou https://www.npmjs.com/ ).

0
gagarwa