【发布时间】:2014-07-18 18:10:00
【问题描述】:
情况是这样的:
我们在某个服务器上有一个 git repo,上面有一个分支,假设它是 master。我们将该 repo 克隆到我们自己的机器上并在其上执行操作。我们每个人都有自己的本地分支,但是当我们推送到服务器时,我们总是先将本地更改合并/rebase 到master,然后再推送到服务器。
一切都很好。
现在其他一些人想加入开发。因此,我们决定与他们共享我们的 repo,除了一个特定的目录。我们想要的是某种机制,我们可以像往常一样开发项目(服务器上的一个分支,为方便起见是本地分支),但是当“其他人”克隆项目时(可能使用其他一些克隆命令,或其他机制提供的正确命令,我们将教他们命令),他们可以看到除该特定目录之外的所有内容(或者他们可以看到目录,但它是空的,或者他们没有访问权限),他们还可以将他们的更改推送到服务器,并拥有自己的本地分支等。
实现这一目标的最佳方法是什么?我不介意在服务器上有多个存储库。
我一直在研究子模块,并做了一些测试。我不喜欢子模块的一点是我必须进入子模块目录并添加/提交/推送等(呃……对吗?)。此外,我不确定子模块如何适应我们的本地分支机构工作流程。欢迎提出任何建议。
【问题讨论】:
-
为什么他们不能看到该目录或其内容?如果它包含访问令牌/敏感信息,则应使用存储库外部的环境变量
-
@jessh:因为该目录的作者不希望其他人(除了我们)看到他的代码。该目录是该项目的一部分,因此我们更愿意将其放在项目中并作为一个整体进行开发。
标签: git version-control git-submodules