我可以将存储库放入Github上的文件夹中吗?


158

我是git的新手,我现在要做的是将所有最近的项目作为存储库上传到github。有很多不同的项目,例如网页设计,WordPress主题和不同类型的应用程序。其中一些也属于较大的项目,因为它们是关于将某些内容作为不同的应用程序进行测试。

问题是我现在在线上的存储库数量令人困惑。如何在文件夹结构中将相关的github存储库分组?有没有提供任何功能来对github上的命令进行排序和结构化甚至标记存储库?


1
@ user478212问题是关于排列存储库,而不是单个存储库中的文件。
danijar

最接近“文件夹”的是今天“项目”(2019年2月):请参阅下面的最新答案
VonC

但是,“项目”不会直接模拟文件夹。模拟文件夹的一种更直接的方法可以是使用描述标签,如下面我的回答所述。
peter554 '19

Answers:


68

在GitHub本身上,除非创建组织,否则无法按“文件夹”对存储库进行分组。
SublimeText,例如,作为一组所有sublimeText包回购。

但这不支持嵌套文件夹组织。目前(2017年6月)仅支持嵌套的团队组织结构

2019年2月更新:您现在有了项目的概念:
请参阅“ 用户拥有的项目-您的个人工作空间

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

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

GitHub上现在也支持(在表单标签的主题)。


2012年原始答案:

另一个解决方案是让您定义引用其他存储库(称为子模块)的存储库。

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

它不会在您的GitHub帐户本身上看起来很明显(因为它仍将包含大量的回购清单,甚至在父回购清单中更大),但是通过克隆一个父回购清单,您将取回其中的所有关联子模块。


现在引用的AnneTheAgile 2014年评论中提到的问题302(2018年11月)tbnorth/github_repo_tags

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

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


4
好的,所以我必须使用许多组织...为何没有任何原因不能按文件夹组织销售代表?
danijar

4
@sharethis我没有理由,不过这不是GitHub提出的功能。
VonC 2012年

5
愿望清单说明;标签对我来说也可以。 github.com/isaacs/github/issues/302
AnneTheAgile 2014年

4
哇,令人难以置信的是,如此庞大的,完善的,受欢迎的服务不支持这种永远存在的基本功能。
迈克尔(Michael)

1
@PeterByfield这是唯一的官方解决方法,所以我暂时坚持。
VonC

9

我使用组织来安排回购。这样可以进行清晰的划分和清晰的组织,可以根据需要进行共享。例如:

我的组织

  • JMR-iOS(iOS回购)
  • Jmr-Work(工作仓库)
  • 用户帐户(按回购协议)

所有组织存储库都是公开的,除非您升级到企业云帐户($ 25 /月)


1
所有组织存储库都是公开的,即使您升级到开发人员帐户也是如此。因此,如果您需要将组织计划升级到企业或团队(如今的价格从每月25欧元起,并允许5个开发人员使用,或者您可以从企业每位用户每月21美元起使用企业)
好奇心

接得好!我已经更新以反映当前的架构,我现在正在使用它
J-Dizzle


2

对于初学者,您可以现在以主题形式在GitHub中标记存储库。好极了!

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

您还可以研究其他版本控制系统,例如subversionmercurial。如果需要,Mercurial也可以托管在Bitbucket上,Facebook甚至在寻求对“ 多项目存储库 ”的支持。

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


2

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

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.