4

フリーランサーに Web アプリケーションの一部の作業を依頼しています - コード リポジトリのフロント エンド部分だけにアクセスを制限したいのですが、Git でこれを行う方法はありますか? リポジトリをホストするために bitbucket を使用しています。私たちは、彼に見られたくない独自の独自のバックエンド コードをたくさん持っており、彼は自分の仕事をするために見る必要はありません。

4

2 に答える 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

そして、SVN URL をフリーランサーに git します。結局のところ、「svn.repo/.git」リポジトリのブランチを GIT_URL にプッシュするだけでよいのです。

$ cd svn.repo/.git
$ git push origin freelancer_branch
于 2012-08-02T10:27:02.193 に答える