我们正在让一名自由职业者在我们的 web 应用程序的某些部分上工作——我想限制他对我们代码仓库的前端部分的访问——有没有办法在 Git 中做到这一点?我们使用 bitbucket 来托管 repo。我们有很多独特的专有后端代码,我们不希望他看到,他也不需要为了完成工作而看到。
问问题
471 次
2 回答
4
您可以使用filter branch
仅包含仅包含他的文件的路径的历史记录来创建新分支。将此分支推送到另一个仓库。授予他对该回购协议的权利。从该回购中提取他的更改。将该分支合并到您的原始存储库中,以将他的工作与其余代码合并。
于 2012-08-02T05:27:55.327 回答
1
或者,如果您的存储库不在 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>
和 path/to/authz (类似这样):
[/]
*=
[/some/dir]
freelancer=rw
以及自由职业者的 git SVN URL。毕竟,您可能只需要将“svn.repo/.git”存储库的一个分支推送回 GIT_URL。
$ cd svn.repo/.git
$ git push origin freelancer_branch
于 2012-08-02T10:27:02.193 回答