如何让程序员选择性地访问我的Git Repo中的代码



我们让一个自由职业者来处理我们的网络应用程序的部分——我想限制他只访问我们代码库的前端部分——有办法在Git中做到这一点吗?我们正在使用比特桶来托管回购。我们有很多独特的后台代码,我们不想让他看到,他也不需要看到这些代码来完成他的工作。

您可以通过使用filter branch来创建一个新分支,该分支只包含路径的历史记录,该路径只包含他自己的文件。将此分支机构推到另一个回购机构。给他回购的权利。从回购中提取他的零钱。将该分支合并到您的原始repo中,将他的工作与代码的其余部分合并。

或者,如果您的存储库不是在bitbucket上,而是在您可以控制的服务器上,您可以将SubGit安装到Git存储库中(它将为它创建一个链接的SVN存储库),然后在生成的SVN存储库中设置基于路径的身份验证,并为自由职业者提供SVN URL。

但是,您仍然可以使用存储库的克隆来执行此操作。

$ svnadmin create svn.repo
$ git clone --mirror GIT_URL svn.repo/.git
$ subgit install svn.repo

并设置svn.repo的访问权限(类似于此):

LoadModule dav_svn_module "/usr/lib/apache2/modules/mod_dav_svn.so"
LoadModule authz_svn_module "/usr/lib/apache2/modules/mod_authz_svn.so"
<Location /repos>                                                                                                                                                                                       
DAV svn                                                                                                                                                                                               
SVNPath "/path/to/svn.repo"                                                                                                     
AuthzSVNAccessFile "path/to/authz"                                                                                                              
Allow from any                                                                                                                                                                                        
AuthType Basic                                                                                                                                                                                        
AuthName "Subversion Repository"                                                                                                                                                                           
AuthUserFile /path/to/htpasswdfile                                                                                                                    
Require valid-user                                                                                           
</Location>

路径/to/authz(类似这样):

[/]                                                                                                  
*=
[/some/dir]
freelancer=rw

和git SVN URL到自由职业者。毕竟,您可能只需要将"svn.repo/.git"存储库的一个分支推回到git_URL。

$ cd svn.repo/.git
$ git push origin freelancer_branch

最新更新