一个目录中有多个Git存储库

时间:2010-03-25 21:15:03

标签: git repository gitignore

我想将目录部署到具有不同权限的多个开发人员。所以这是Git不能做的一件事。如何在一个目录中创建两个存储库并通过使用.gitignore文件排除另一个存储库管理的文件来为它们分配不同的文件列表。

示例:除了/www/project/.git以外的所有文件的/www/project/css /www/project/css/.git - >只有这个目录中的文件

有没人试过这个解决方案?或者有更好的方法来处理这个问题吗?

3 个答案:

答案 0 :(得分:4)

一种比git-submodules(使用起来很痛苦)更烦人的方法是gitslave Gitslave创建了一组相关的存储库 - 一个超级项目存储库和一些从属存储库 - 所有这些都是同时开发的并且所有git操作通常应该在其上运行;因此,当您分支时,项目中的每个存储库依次分支。同样,当你提交,推,拉,合并,标记,结账,状态,日志等;每个git命令将依次在超级项目和所有从属存储库上运行。这种活动可能对CVS和(在较小程度上)Subversion用户非常熟悉。 Gitslave的设计是为了简化正常的git操作。

我还会指向跟踪权限的etckeeper。它有自己的特点,可能会或可能不会使它可用。

最后,我会注意到你可以拥有一个自定义的post-checkout脚本,它在相应的文件/目录上设置适当的权限。

答案 1 :(得分:2)

听起来你想要子模块。主仓库中的任何子目录都可以是子模块,这些子模块是不同的git存储库。

https://book.git-scm.com/book/en/v2/Git-Tools-Submodules

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

答案 2 :(得分:0)

我怀疑你最好允许开发人员在两个/两个存储库中共享comimits。另请参阅此server fault question