Git子目录在许多存储库中复制

时间:2015-02-11 14:59:26

标签: git

对于我的论文,我有一个Git存储库repo_0,其中包含许多子目录。类似的东西:

thesis/
    .git/
    data/
    experiments/
    papers/
    algorithm_1/
    algorithm_2/

我是唯一有权访问存储库的人。不过,我想与更多人分享algorithm_1algorithm2,以便他们最终能够做出贡献。

如何将algorithm_1/algorithm_2/关联到他们自己的存储库repo_1repo_2,同时将它们保存在repo_0中?

一个天真的解决方案是将算法从repo0中取出并维护三个存储库,但我正在寻找一个更为懒惰的解决方案:

  • 如果我在repo_0中提交,则algorithm_n中的更改会传播到repo_nrepo_2
  • 如果我在repo_1中提交,则更改会传播到repo_0

最接近解决方案的建议是什么?

2 个答案:

答案 0 :(得分:1)

你需要的是一个子模块。

http://git-scm.com/docs/git-submodule

答案 1 :(得分:1)

这是submodules很棒的一个很好的例子。您将每个存储库视为自己的存储库(维护三个存储库),但基本上具有"软链接"您的repo_0中的特定提交到您的其他回购。这就好像子模块是远程存储库,但是您将本地副本与repo_0保持一致。

在此主题上查看此great tutorial