【问题标题】:GIT permissions : Repository inside a repositoryGIT 权限:存储库中的存储库
【发布时间】:2016-05-23 12:25:33
【问题描述】:

我的文件夹结构如下:

repo1
|
|---file1
|---fold1
    |
    |---file2
|---repo2
    |
    |
    |---file3

假设我有两个用户,user1user2

现在我需要:

  1. repo1repo2 设置为两个独立的GIT repositories
  2. user1 设置为对repo1user2 拥有repo2 的权限。
  3. user1 应该能够拉动 file1fold1 内容,但不能拉动 repo2
  4. user2 应该能够拉动repo2 及其下的文件,但不能拉动repo1
  5. user2修改并提交到repo2后,应该会在服务器的repo1下反映出来

GIT 是否可以实现此级别的权限?

【问题讨论】:

  • 这似乎很不寻常——你想做什么?
  • @1615903 我有具有上述文件夹结构的现有项目,我们正在为该项目设置 GIT 存储库,所以我希望某些用户只能访问主文件夹内的子文件夹,而某些用户应该只能访问主文件夹。
  • 我从这个问题中明白了很多,但我想知道为什么。为什么 user1 不能访问 repo2 的内容?如果您可以授予 user1 至少对 repo2 的读取权限,则子模块将是一个合适的选择。
  • @1615903 user1 不应该有权访问 repo2,因为里面的文件是特定于应用程序的,只有应用程序所有者应该能够查看和编辑它们。user2 是特定于应用程序的,他不应该能够看到操作内容。

标签: linux git security repository repository-design


【解决方案1】:

参见“git 子模块”。

  • 可以在服务器中设置服务器 repo 的密码和权限

  • 每个用户都必须拥有自己的本地存储库。

  • repo1 是主模块,repo2 是子模块。见。

    git 帮助子模块

  • 如果 user2 推送(从本地到服务器,提交后)到 repo2,user1 将使用“git submodule update”命令拉取更改,但不会自动。

【讨论】:

  • 感谢@gregg 我读到git subtreegit submodule 好所以我关注了这篇文章[stackoverflow.com/questions/359424/…] 但是在我将一个子目录分离出来作为存储库之后,我不知道如何合并它返回并在父目录中查看。
猜你喜欢
  • 1970-01-01
  • 2011-08-20
  • 1970-01-01
  • 2012-12-31
  • 2011-05-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多