我可以安排仓库到Github上的文件夹?

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

问题是我现在有一个令人困惑的在线存储库的数量。我如何在一个文件夹结构组相关的github存储库?在github上是否有一个功能提供任何排序和结构甚至标签存储库的能力?

131475 次浏览

2021年12月更新:

< a href = " https://github。blog/changelog/2021-12-09- Lists -are-now- avail- as-a-public-beta/" rel="noreferrer">列表现在作为公共测试版

通过在GitHub上轻松组织和管理您最喜欢的存储库,列表提升了主演体验。

您可以在https://github.com/USERNAME?tab=stars创建公共列表,显示在您的星星页面上。

除了企业管理的用户,所有人都可以使用列表。

https://i0.wp.com/user-images.githubusercontent.com/6895176/145467599-0b91cecd-872e-4ca1-bc86-16df076da29d.png?ssl=1

然而(2022年6月),正如GitHub社区问题#4174:支持存储库类别中的Wyck所示,表示仍然缺乏:

如果我点击主题按钮,它会显示所有公共回购的列表,标有相同的主题关键字。
相反,我更希望有一种方法只查看我的组织中标记有该主题的回购

我还希望看到在我的私人组织内的任何回购上标记的所有主题的顶级列表,以作为我的组织中的回购的顶级目录或目录。


最初的回答:

在GitHub本身,你不能分组你的回购文件夹,除非你创建组织
例如,可以将SublimeText视为所有sublimeText包的一组repos.

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


2020年8月更新:自述文件项目允许您添加个人信息页面…你可以以任何你想要的方式列出和组织你的存储库。但这是一个手动过程(编辑页面)。


2019年2月更新:你现在有项目的概念:
看到“用户拥有的项目—您的个人工作区" < / p >

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

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

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


2012年的原始答案:

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

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

它不会在你的GitHub帐户本身(因为它仍然包含一个很大的回购列表,甚至更大的父回购),但通过克隆一个父回购,你将得到它所有相关的子模块。


2014年由AnneTheAgile提到的在评论中只是引用了现在(2018年11月)tbnorth/github_repo_tags

这个存储库中的python小程序使用GitHub API来获取你的回购列表。并将他们的名称、描述和URL添加到一个新的repo中。,默认名为repo_tags。最初每个“问题”都被标记为未分类,但您可以使用常规的问题标记来标记它们。

当重新运行时,repo_tags.py只会为回购创建问题。这些问题还没有被解决。

我使用组织来安排回购。这允许清晰的描述和清晰的组织,如果需要,可以进行共享。例如:

我的组织

  • Jmr-iOS (iOS回购)
  • Jmr-Work(工作回购)
  • 用户会计(人事及回购)

所有组织回购都是公开的,除非你升级到企业云帐户($25/月)自2020年9月起,你可以在一个组织下拥有无限的公共/私有存储库。(参见选项在这里)

这与其说是一个回答,不如说是一个提醒。

结构化利用组织的一个最近的副作用已经暴露出来,因为下面宣布为用户提供免费的私人回购:https://blog.github.com/2019-01-07-new-year-new-github/

组织私人回购仍然不是免费的。因此,使用组织来分离回购将导致你的组织无法利用免费的私人回购,如果这是你需要的。

模拟文件夹的一种可能方法是在repo描述的末尾附加逗号分隔的标记。然后你可以通过这些标签搜索repo,因为GitHub 'Find a repository…'过滤器看起来在回购描述!一个例子:

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

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

但我不认为这能解决更大的问题。为此,我尝试了顶级文件夹系统(其中每个项目都是一个repo中的文件夹)。我还尝试过每个项目一个分支的系统(其中每个项目都在一个新的分支中)。最后一个方法允许你单独地拉和推每个项目!但是,这两种情况都不理想。

你也可以查看其他版本控制系统,如颠覆水银。如果你需要,Mercurial也可以托管在Bitbucket都上,Facebook甚至正在寻求对“多项目存储库”的支持。

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

项目方法的缺点包括:

  1. repo所在的项目(即“文件夹”)不是 通常可见,例如在主页或个人资料。要使这些地方可见,需要在回购的名称中添加手动标记,例如 比如@peter554。但是改变“文件夹”;(即项目)要求 修改repo名称中的project和manual标签
  2. 不能向项目中添加分叉。

联合国的办法没有这些问题。然而:

  • 你的“foldered"回购将从您的帐户资料页面消失。但组织可以通过成为公众成员而在那里可见。(可以设置在“人”下面;在组织内)

注意:随着Github的进一步发展,这些内容可能会发生变化。

所以确认Github没有文件夹功能。

我认为要组织存储库,可以采用两种方法。

  • 使用文件系统,每个文件都指向一个存储库,它们只是一个到GitHub的链接,把它们放在文件夹中,以文件夹名称作为类别(python脚本可以生成所有文件,你可以拖放)

  • 使用有向图组织(没有现有的工具,你需要构建一个web或桌面应用程序来做到这一点,我正在编码出来)

    • this

git repo和git repo表示它们所属业务域的服务。因此,团队拥有这些回购是有道理的。您可以创建一个团队,并添加该团队拥有的回购。使用团队的概念也可以更好地管理访问。

这个想法的灵感来自Team Topology