次のシナリオに対処する必要があります。プロジェクトがあり、この目的で git を使用するとします。Extern ユーザーは、内部変更の影響を直接受けないコードの部分 (プラグインなど) で作業できるようにする必要があります。したがって、git は読み取り権限を削除できないため、この手順についてどう思いますか。
- 2 つのリポジトリ repo_int、repo_ext を作成します。「共有」と呼ばれるブランチが 1 つだけある Repo_ext。
- extern 開発者がそのブランチにプッシュできるようにします
- ローカル クローンを使用して、2 番目の内部開発者ブランチにプルおよびプッシュします
これは次のように行うことができます。
裸のリポジトリを作成する
$ mkdir ~/remotes/repo_int.git
$ cd ~/remotes/repo_int.git && git init --bare
$ mkdir ~/remotes/repo_ext.git
$ cd ~/remotes/repo_ext.git && git init --bare
新しいロケール リポジトリを作成する
$ cd /path/to/my/project && git init
共有ブランチを作成してチェックアウトする
$ git checkout -b shared
リモート repo_ext と repo_int を追加
$ git remote add -t shared repo_ext ~/remotes/repo_ext.git
$ git remote add repo_int ~/remotes/repo_int.git
最初の一押しをする
$ git remote push repo_ext shared && git remote push repo_int *
HEAD を repo_ext からブランチ共有に設定します
$ git symbolic-ref HEAD refs/heads/shared
repo_ext への外部アクセスを取得するには:
$ git clone ~/remotes/repo_ext.git
いくつかの変更を行い、ものをプッシュします
$ git push origin shared
内部リポジトリでブランチ チェックアウトを実行し、マージやチェリー ピックなどの変更を使用します。
$ git clone ~/remotes/remote_int
$ git checkout -b shared repo_ext/shared
...
これは、これを処理するための推奨される安全な方法ですか? ユーザー権限の管理が行き届いたコードレビューツール「gerrit」について伺いました。このツールを使用して問題に対処することは可能でしょうか?
どうもありがとう!