对于我的论文,我有一个Git存储库repo_0
,其中包含许多子目录。类似的东西:
thesis/
.git/
data/
experiments/
papers/
algorithm_1/
algorithm_2/
我是唯一有权访问存储库的人。不过,我想与更多人分享algorithm_1
和algorithm2
,以便他们最终能够做出贡献。
如何将algorithm_1/
和algorithm_2/
关联到他们自己的存储库repo_1
和repo_2
,同时将它们保存在repo_0
中?
一个天真的解决方案是将算法从repo0
中取出并维护三个存储库,但我正在寻找一个更为懒惰的解决方案:
repo_0
中提交,则algorithm_n
中的更改会传播到repo_n
和repo_2
repo_1
中提交,则更改会传播到repo_0
最接近解决方案的建议是什么?
答案 0 :(得分:1)
你需要的是一个子模块。
答案 1 :(得分:1)
这是submodules很棒的一个很好的例子。您将每个存储库视为自己的存储库(维护三个存储库),但基本上具有"软链接"您的repo_0中的特定提交到您的其他回购。这就好像子模块是远程存储库,但是您将本地副本与repo_0保持一致。
在此主题上查看此great tutorial。