我想将目录部署到具有不同权限的多个开发人员。所以这是Git不能做的一件事。如何在一个目录中创建两个存储库并通过使用.gitignore
文件排除另一个存储库管理的文件来为它们分配不同的文件列表。
示例:除了/www/project/.git
以外的所有文件的/www/project/css
/www/project/css/.git
- >只有这个目录中的文件
有没人试过这个解决方案?或者有更好的方法来处理这个问题吗?
答案 0 :(得分:4)
一种比git-submodules(使用起来很痛苦)更烦人的方法是gitslave Gitslave创建了一组相关的存储库 - 一个超级项目存储库和一些从属存储库 - 所有这些都是同时开发的并且所有git操作通常应该在其上运行;因此,当您分支时,项目中的每个存储库依次分支。同样,当你提交,推,拉,合并,标记,结账,状态,日志等;每个git命令将依次在超级项目和所有从属存储库上运行。这种活动可能对CVS和(在较小程度上)Subversion用户非常熟悉。 Gitslave的设计是为了简化正常的git操作。
我还会指向跟踪权限的etckeeper。它有自己的特点,可能会或可能不会使它可用。
最后,我会注意到你可以拥有一个自定义的post-checkout脚本,它在相应的文件/目录上设置适当的权限。
答案 1 :(得分:2)
听起来你想要子模块。主仓库中的任何子目录都可以是子模块,这些子模块是不同的git存储库。
答案 2 :(得分:0)
我怀疑你最好允许开发人员在两个/两个存储库中共享comimits。另请参阅此server fault question。