フォークの同期を維持する
フォーク同期を使用すると、Bitbucket Server のフォークでアップストリーム リポジトリの変更を反映して最新の状態に維持することができます。Bitbucket Server は、フォーク内で変更されていないすべてのブランチやタグに対してこの操作を自動的に実行できます。
フォークのブランチまたはタグを変更した場合、Bitbucket Server は同期戦略を提供します。Bitbucket Server がフォーク内のブランチやタグを更新することはありません。つまり、変更が失われることはありません。
ここでの同期とは、アップストリームの最近の変更をフォークにプルすることであり、プル リクエストは変更をアップストリームのリポジトリにプッシュして戻します。
On this page:
フォークの自動同期を有効化する
リポジトリを初めてフォークする際に、フォークの自動同期を有効にすることができます。
- フォークの同期を有効化する
You can also enable fork syncing at any later time by going to Settings > Fork syncing for the forked repository. Syncing is enabled by default.
同期される内容
自動同期を実行する際、Bitbucket Server は次のようにフォークを更新します。
- ブランチの場合 - Bitbucket Server は任意の fast-forward 変更を行います。作業をマージする必要はなく、変更が失われるリスクはありません。
- タグの場合 - Bitbucket Server は現在の状態がアップストリームで示された内容と同じ場合にのみ更新します。そのため、同じ名前のタグがある場合を除き (このときは更新に失敗します)、アップストリームに新しいタグがあると、フォーク内に新しいタグが作成されます。
手動での同期
アップストリームとフォークが分岐しており、互いに存在しない変更がそれぞれにあった場合、Bitbucket Server はマージを自動的に実行しません。Bitbucket Server のブランチにアクセスすると、ブランチを手動で同期するオプションが表示されます。
フォークされたリポジトリの [設定] > [フォークの同期] タブに移動するか、リポジトリの [ソース] または [コミット] タブに移動して、[同期] を使用してブランチをいつでも手動で同期できます。
手動での同期の戦略
手動での同期を開始する際、Bitbucket Server から次の同期戦略のいずれかを選択するように求められます。
マージ戦略
アップストリーム ブランチをフォーク ブランチにマージします。
Bitbucket Server でマージの実行を試みた際に競合が検出されると、それらの解決方法についてのヒントが表示されます。
マージが完了すると、ブランチには親リポジトリのブランチのすべてのコミットが含まれますが、ブランチは引き続き親よりも先になります (ブランチは変更内容を保持しています)。つまり、このブランチの自動同期は、変更を親リポジトリにプッシュするまで行われません。
破棄戦略
フォーク内の変更をアップストリーム ブランチで上書きします。変更は失われます。