在一个git仓库中拥有多个“子仓库”?

12

我很幸运通过Github的EDU计划获得了一个免费的微型计划Github账户,用于我的学校作业。但是,我不确定如何最好地为我的CS课程进行结构化。理想情况下,我希望每个课程都有一个不同的存储库--例如CS101、CS102等。然而,微型计划只允许最多5个存储库,而我将在未来一两年内修读超过5门课程。那么,有没有一种方法可以在一个存储库中为每个文件夹保留单独的提交记录,即使用一个存储库来管理多个“子”存储库(基本上是一个子模块)。

欢迎提供任何建议。

谢谢!


但是,这些提交将会互相干扰。我希望每个目录都有一个提交流。 - user1516425
2个回答

16

分支

对于每个类别,在代码库中运行git checkout --orphan <classname>,即可获得该类别内容的一个新的无父分支。

当需要获取代码库的本地副本时,运行git clone --single-branch --branch <classname> <url> <localdir>,它将只克隆并更新该类别的分支。

Bitbucket

像trauzti所说的那样,我强烈建议您注册Bitbucket账户。虽然其用户界面不如Github美观,但拥有完全相同的功能,并且他们允许免费创建无限数量的私有存储库。我用它来做我的学校作业。如果您真的想使用Github,那么上述方法也可以使用。


1
不错,我不知道Git中也可以有孤儿分支……此外,我喜欢Bitbucket,所以整个答案加一。 - nonsensickle

0

也许有人知道如何使用子模块来实现这个:http://git-scm.com/book/en/Git-Tools-Submodules

您可以使用多个分支,每个类一个分支,并在计算机的不同目录中检出不同的分支。

但是,如果只有5个或更少的人将使用这些存储库,则应该检查BitBucket:https://bitbucket.org/

在那里,您可以免费拥有无限数量的私有存储库。


但是子模块不需要另一个存储库吗?或者可以创建一个“本地”子模块吗? - user1516425
是的,看起来是这样,但你当然可以使用多个分支,在这里有一些关于分支的文档:http://git-scm.com/book/zh/v2/Git-分支-分支简介与分支管理。 - trauzti
子模块对此无效。子模块是一种从另一个存储库中引用的方法。分支可能是最好的选择。 - vergenzt

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接