Bitbucket スマート ミラーリングでの作業
Bitbucket Server のスマート ミラーリングは、お客様自身がホストする Bitbucket Server のローカル インストールを使用して、Bitbucket Cloud でホストされるリポジトリをミラーリングします。詳細は、「Bitbucket Cloud のスマート ミラーリング」をお読みください。
このページでは、セットアップおよび実行済みのスマートミラーを操作する方法について説明します。
- スマート ミラーリングを開始したばかりの場合、「Bitbucket スマート ミラーリングのセットアップ」をご覧ください。
- If you want to mirror a Bitbucket Server instance, see Smart Mirroring instead.
スマート ミラーリングのしくみ
スマート ミラーリングは、お客様自身がホストする Bitbucket Server のローカル インストールを使用して、Bitbucket Cloud でホストされるリポジトリをミラーリングします。
たとえば、オースティンのローカル チームが Bitbucket Cloud (プライマリ) を操作し、シドニーにいるリモート チームが、その近辺でホストされているミラーからクローンとプルを実行します。シドニーのチームはミラーにプッシュでき、ミラーはその変更をプライマリ リポジトリにプッシュします。
リポジトリのブラウジングやプルリクエストの使用などのその他の操作はすべて、Bitbucket Cloud によって提供されます。Bitbucket Server はミラーとして機能する場合、Web UI を提供しません。
Once I've cloned from a mirror, am I supposed to push to the mirror as well?
いいえ。リポジトリにプッシュするには、Bitbucket Cloud の上流のリポジトリを指すようにプッシュ URL を更新する必要があります。コマンドは次のようになります。
$ git remote set-url --push origin git@bitbucket.org:<workspace_id>/repo.git
リポジトリのクローン ダイアログを確認して、これをセットアップする正確なコマンドを見つけます。
同期
ミラーとプライマリ Bitbucket Cloud は自動的に同期されます。
認証
ユーザーがミラーを操作する際、ミラーは自動的に認証をプライマリに委譲します。ミラーでは追加のユーザー管理は不要です。プライマリ Bitbucket Cloud のすべてのユーザー、グループ、および権限が、ミラー上に正確にレプリケートされます。
ミラーするプロジェクトを決定する
ワークスペース内の個々のプロジェクト、またはそのアカウントのすべてのプロジェクトのみをミラーリングできます。選択したプロジェクトのすべてのリポジトリがミラーリングされます。すべてのプロジェクトをミラーリングするよう決定した場合、個別プロジェクトのみに戻すことはできません。全体のミラーリングから個別プロジェクトのミラーリングに切り替えるには、ミラー インスタンスを削除して再インストールする必要があります。
Git LFS でミラーを使用する
Bitbucket スマート ミラーリングは Git LFS をシームレスにサポートします。リポジトリに GIT LFS ファイルが含まれる場合、ミラーはバックグラウンドでそれらを自動的に同期します。すべての一般的な Git または Git LFS コマンドを使用して、Git LFS ファイルを含むリポジトリをフェッチできます。
Sourcetree でミラーを使用する
It's easy to use Smart Mirroring with Sourcetree, the Atlassian desktop client for Git and Mercurial. If you're just getting started with Sourcetree, you may find the Learn Sourcetree with Bitbucket tutorial helpful.
ミラーからクローンを作成する
ミラーからリポジトリのクローンを作成する方法:
- Bitbucket のリポジトリへ移動します。
- [クローン] ボタンをクリックします。
- [クローン元] ドロップダウンを使用して、最も近いミラーを選択します。ミラーが異なると、クローン URL も異なります。
- クローン URL (SSH または HTTPS) をコピーします。
SSH プロトコルを使用している場合は、公開キーが正しく構成されていることを確認します。 - ターミナル ウィンドウで、リポジトリをクローンするローカル ディレクトリに移動します。
「
git clone
」と入力してから、コピーしたクローン URL を貼り付けます。
コマンドとクローン URL は次のようになります。$ git clone ssh://git@bitbucket-au.example.com:7999/upstream/PROJ/repo.git
クローンが成功すると、ローカル ドライブに新しいサブディレクトリが作成されます。このディレクトリは、クローンした Bitbucket リポジトリと同じ名前になります。クローンには、ソース ファイルへの変更を保持するために Git が必要とする、ファイルとメタデータが含まれます。これで、ミラーから作成したクローンに対して必要な変更を行い、その変更をミラーにプッシュできます。ユーザーが行った変更は、Bitbucket のプライマリ リポジトリにも反映されます。
ミラーを別の Bitbucket アカウントに接続する
ミラーの接続先となる Bitbucket アカウントを変更できます。
- アカウントの管理者設定に移動して、[スマート ミラーリング] を選択します。
- 別のアカウントに再接続するミラーを選択します。
- ミラーのベース URL を記録します。
- 現在のアカウントからミラーを削除します。
- ミラーのベース URL へアクセスし、[再度追加] をクリックします。
- ミラーの接続先となる新しいアカウントを選択し、アクセス権を付与します。
ミラーを削除する
公開リポジトリのミラー
公開リポジトリを持つプロジェクトをミラーした場合、ミラーのアドレスは公開されます。Bitbucket は Bitbucket サイトへのすべての訪問者にそのミラーをアドバタイズします。訪問者がそのリポジトリにアクセスするためのログインは不要です。これにより、多数のリクエストを受信することになるため、ミラーのパフォーマンスに影響が出る可能性があります。
Bitbucket がミラーにアクセスできるようにするには、ミラーがパブリックでアクセス可能な必要があります。
このトラフィック増加の影響を軽減する方法がいくつかあります。
公開リポジトリを、Bitbucket のミラーされていないプロジェクトに移動させる
これは推奨される手法であり、公開リポジトリのミラーリングを完全に回避します。もちろん、これらのリポジトリは Bitbucket 上では公開のままとなります。
このアプローチを使用してもミラーの IP アドレスは公開されますが、ミラーは無効として表示されます。
IP 許可リスト
IP 許可リストを使用すると、ミラーへのアクセスを一部の受信 IP アドレスに制限できます。
- 外部に面したファイアウォールで IP 許可リストを設定します。
- ミラーには、Bitbucket インバウンド アドレスへのアウトバウンド アクセス権限、Bitbucket アウトバウンド アドレスからのインバウンド アクセス権限が必要です。Bitbucket が使用する IP アドレスのリストについては、「Bitbucket Cloud IP アドレス」を参照してください。
このアプローチを使用してもミラーの IP アドレスは公開されますが、ミラーは無効として表示されます。