9

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

示例:/www/project/.git对于除 in 之外的所有文件/www/project/css /www/project/css/.git-> 仅此目录中的文件

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

4

3 回答 3

5

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

我还将向您指出确实跟踪权限的etckeeper 。它有自己的特点,可能会也可能不会对你有用。

最后,我会注意到您可以拥有一个自定义的结帐后脚本,该脚本在适当的文件/目录上设置适当的权限。

于 2012-03-15T16:21:06.100 回答
2

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

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

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

于 2010-04-15T22:03:37.603 回答
0

我怀疑你最好允许你的开发人员在一个/两个存储库中提交。另请参阅此服务器故障问题

于 2010-03-25T21:20:38.517 回答