【问题标题】:Multiple Git repositories in one directory一个目录中的多个 Git 存储库
【发布时间】:2010-03-25 21:15:03
【问题描述】:

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

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

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

【问题讨论】:

标签: git repository gitignore


【解决方案1】:

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

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

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

【讨论】:

    【解决方案2】:

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

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

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

    【讨论】:

      【解决方案3】:

      我怀疑你最好允许你的开发人员在一个/两个存储库中提交。另见server fault question

      【讨论】:

      • 我不想允许访问。设计师和发短信的人不应该能够下载整个代码。第二个问题是我想使用 GitHub 而不是自己的服务器来处理存储库,因为 GitHub 更方便。
      猜你喜欢
      • 1970-01-01
      • 2010-09-30
      • 2023-01-13
      • 2013-05-08
      • 2012-11-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多