0
我试图找到方法来配置Git仓库对其中两组工作的项目。Git的 - 如何使用子模块,使子分支?
上述两组都应该有访问权限如下。
- 组1:接触到两者的 '/ SRC/dir_public' 和 '/ SRC/dir_private'
- 组2:只能访问 '/ SRC/dir_public'
使用Google到后找出答案,我想:“混帐子模块”可能是解决方案之一在第一。
但快速测试后,我发现这不是我真正想要的。
我认为子模块不会从所谓的“上层项目”进行跟踪,但他们。
换句话说,我想合并'src/dir_public'中可由两个组提交的更改,但我不希望Group2知道“src/dir_private”。
是否可以配置Git仓库如下?
目录上的 “主” 分支(组1)
- SRC/dir_public(repo_public)
- SRC/dir_private(repo_private)
目录可见可见的“私人“分支(1组)
- SRC/dir_public(repo_public) 上(与第2组共享)
- SRC/dir_public(repo_public) “公开” 分支
- SRC/dir_private(repo_private)
目录可见
我想通过以下方式来管理/同步了代码
- 合并“公共”分支到“主人”分支:在“公共”分支任何更新,应合并为“主”分支
- 合并“私人”分支到“主人”分支:任何更新的“私人“分支应该合并为‘主’分支
- 合并‘master’分支到‘公共’分支:这会工作,但我不想dir_private是可见的‘公共’分支。
最后,我添加了我测试的东西。
$ 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
感谢您的评论。但我认为我的问题有些模棱两可,所以我编辑了我的问题。 – Han