我可以将存储库安排到Github上的文件夹中吗?

时间:2012-08-07 19:46:49

标签: git github repository

我是git的新手,我现在正在做的是将我最近的所有项目作为存储库上传到github。有许多不同的项目,如网页设计,wordpress主题和不同类型的应用程序。其中一些也属于更大的项目,因为它们是将一些东西作为一个不同的应用程序进行测试。

问题是我现在有一个令人困惑的在线存储库。如何在文件夹结构中对相关的github存储库进行分组?是否有一项功能可以在github上订购和构建甚至标记存储库?

6 个答案:

答案 0 :(得分:46)

在GitHub上,除非您创建organizations,否则无法通过“文件夹”对您的回购进行分组。
例如,请将SublimeText视为一组所有sublimeText包repos。

但是这不支持嵌套文件夹组织。目前(2017年6月),仅支持nested team organization structure

2019年2月更新:您现在拥有项目的概念:
请参阅“User owned projects—your personal workspace

  

您还可以将最多5个存储库链接到项目板。链接存储库会将搜索范围限制在那些链接的存储库中,因此您可以快速缩小尚未添加到项目板的任何新问题

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

GitHub现在也支持标签(以topics的形式)。


2012年原始答案:

另一个解决方案是您定义引用其他repos的存储库,声明为 submodules

这样,当你克隆其中一个repos(引用其他repos),称为“parent repos”时,它们将被克隆到它们自己的目录中,每个子模块都有一个子目录。

在您的GitHub帐户本身上不会在视觉上显而易见(因为它仍然包含一个大的回购列表,甚至更大的父回购),但通过克隆一个父回购,您将获得所有相关的子模块在它。


2014年issue 302 in the comments提到的AnneTheAgile现在仅提及(2018年11月)tbnorth/github_repo_tags

  

此存储库中的small python program使用GitHub API获取您的存储库列表。并将其名称,描述和URL添加到新的存储库中,默认情况下称为repo_tags。最初,每个“问题”都标记为未分类,但您可以使用常规问题标记随意标记它们。

     

重新运行时,repo_tags.py只会为回购创建问题。尚未涵盖的问题。

答案 1 :(得分:6)

我使用Organizations来安排回购。这样可以实现清晰的描绘和清晰的组织,如果需要,可以分享。例如:

我的组织

  • Jmr-iOS(iOS repos)
  • Jmr-Work(工作回购)
  • 用户帐户(Pers repos)

所有组织回购都是公开的,除非您upgrade到开发者帐户($ 7 /月)

答案 2 :(得分:2)

这不是一个提示,而是一个答案。

由于以下针对用户的免费私人回购声明的发布,使用组织进行结构化的一个近期副作用已暴露出来:https://blog.github.com/2019-01-07-new-year-new-github/

组织私人存储库仍然不是免费的。因此,如果需要,使用组织来分离存储库将导致您的组织无法使用免费的私人存储库。

答案 3 :(得分:2)

模拟文件夹的一种可能方法是在回购描述的末尾附加逗号分隔的标签。然后,您可以通过这些标签搜索存储库,因为GitHub'Find a repository ...'过滤器会出现在存储库描述中!一个例子:

  

MyRepo:做一些很酷的东西[计算机视觉,机器学习,python]

如果您不想手动执行此操作,则可以自动化。例如,我制作了一个GitHub回购组织工具,使用Angular,octokit和dragula来完成此任务。如果您有兴趣,请在这里查看:https://github.com/Peter554/github-repo-tagger/

github-repo-tagger

答案 4 :(得分:0)

对于初学者来说,您现在可以在GitHub中以主题形式标记回购协议。是的!

但是我认为这不能解决更大的问题。为此,我尝试了一个顶级文件夹系统(每个项目在一个仓库中是一个文件夹)。我还尝试了每个项目系统一个分支(每个项目在一个新分支中)。这最后一个允许您也分别拉动每个项目!但是,这都不是理想的。

您还可以研究其他版本控制系统,例如subversionmercurial。如果需要,Mercurial也可以托管在Bitbucket上,而Facebook甚至在寻求对“ multi-project repositories”的支持。

我个人喜欢https://hg.openjdk.java.net/(或http://hg.netbeans.org/)的系统,在该系统中您有一个文件夹设置,并且每个项目都托管在端点上。实现这一目标的最佳方法是通过创建一个具有项目结构(例如https://mvnrepository.com/https://www.npmjs.com/)的网站(您可以在GitHub中完成)。

答案 5 :(得分:0)

使用Projects方法的缺点包括:

  1. 回购协议所在的项目(即“文件夹”)不是 通常可见,例如在首页或您的个人资料中。要使其在那些地方可见,需要在存储库名称中添加一个手动标签,用于 像@ peter554这样的例子建议。但是然后更改“文件夹”(即项目)需要 更改存储库名称中的项目和手动标签。
  2. 您无法将派生添加到项目中。

本组织的方法不存在这些问题。但是:

  • 您的“文件夹”存储库将从您的帐户资料页面中消失。但是,可以通过成为公共成员使组织在此处可见。 (可以在组织内的“人员”下设置)