我试图找到为两个小组工作的项目配置Git存储库的方法。
两组中的每一组都应具有以下访问权限。
谷歌搜索后找到答案,我想" git-submodule"可能是最初的解决方案之一。
但经过快速测试后,我发现这不是我真正想要的。
我认为子模块不会被所谓的"超级项目"跟踪,但它们是。
换句话说,我想合并&s; src / dir_public'这可以由两个小组提交,但我不希望Group2知道" src / dir_private"。
是否可以按如下方式配置Git存储库?
目录可见" master"分支(group1)
在"私人"上可见的目录分支(group1)
目录在" public"分支(与group2共享)
我想通过以下方式管理/同步代码
最后,我添加了我测试的内容。
$ mkdir ~/superproject
$ cd ~/superproject
$ git init
$ mkdir src; mkdir dir_public;
$ cd src/dir_public
$ echo public code > public.c
$ git add .
$ git commit -am "Added the public file."
[master (root-commit) 9b11e8c] Added the public file.
1 file changed, 1 insertion(+)
create mode 100644 src/dir_public/public.c
$ mkdir ~/dir_private
$ cd ~/dir_private
$ git init
$ echo private code > private.c
$ git add .
$ git commit -am "Added the private file."
[master (root-commit) 9d34bb2] Added the private file.
1 file changed, 1 insertion(+)
create mode 100644 dir_private/private.c
$ cd ~/superproject/src
$ git submodule add ~/dir_private/
Cloning into '~/superproject/src/dir_private'...
done.
$ git status
On branch master
Changes to be committed:
(use "git reset HEAD <file>..." to unstage)
new file: ../.gitmodules
new file: dir_private
答案 0 :(得分:1)
查看此答案:A way to restrict Git branch access?
你想要做的是分叉回购,这样你就有自己的回购。你可以做任何你想要的分支。当您准备好与master(或每个人正在使用的任何分支)合并时,您可以推送。在开发期间没有人会看到你的分支。