Skip to main content

リポジトリが削除されたり可視性が変更されたりするとフォークはどうなりますか?

リポジトリを削除したり、その可視性を変更したりすると、そのリポジトリのフォークに影響します。

警告:

  • プライベートリポジトリへの個人のアクセス権を削除すると、そのプライベートリポジトリからその人が作成したフォークはすべて削除されます。 プライベートリポジトリのローカルクローンは残ります。 プライベート リポジトリへの Team のアクセス権が削除されたり、プライベート リポジトリへのアクセス権を持つ Team が削除されたりしていることに加え、他の Team 経由でのそのリポジトリへのアクセス権を Team のメンバーが持っていなければ、そのリポジトリのプライベート フォークは削除されます。

  • リポジトリへのアクセスを失った個人に、機密情報や知的財産を確実に削除してもらうのは、あなたの責任です。

  • プライベート または内部 リポジトリへの管理アクセス許可を持つユーザーは、そのリポジトリのフォークを禁止することができます。また、Organization 所有者は、Organization 内でのプライベート または内部 リポジトリのフォークを禁止することができます。 詳細については、「Organization のフォーク ポリシーを管理する」および「リポジトリのフォーク ポリシーを管理する」を参照してください。

プライベートリポジトリを削除する

プライベートリポジトリを削除すると、そのプライベートフォークもすべて削除されます。

パブリックリポジトリを削除する

パブリックリポジトリを削除すると、既存のパブリックフォークの 1 つが新しい親リポジトリとして選択されます。 他のすべてのリポジトリはこの新しい親から分岐し、その後のプルリクエストはこの新しい親に送られます。

プライベートフォークと権限

プライベートフォークは、上流もしくは親リポジトリの権限構造を継承します。 これは、プライベートリポジトリのオーナーがコードに対するコントロールを管理するための役に立ちます。 たとえば、上流リポジトリがプライベートで読み取り/書き込みアクセスをあるTeamに与えているなら、そのチームはプライベートの上流リポジトリのすべてのフォークに読み取り/書き込みアクセスを持つことになります。 (個人のアクセス許可ではなく) チームのアクセス許可のみが、プライベート フォークによって継承されます。

パブリックリポジトリをプライベートリポジトリに変更する

パブリックリポジトリを非公開にすると、そのパブリックフォークは新しいネットワークに分割されます。 パブリックリポジトリの削除と同様に、既存のパブリックフォークの 1 つが新しい親リポジトリとして選択され、他のすべてのリポジトリはこの新しい親から分岐されます。 後続のプルリクエストは、この新しい親に行きます。

言い換えれば、パブリックリポジトリのフォークは、親リポジトリが非公開にされた後も、独自の別のリポジトリネットワークで公開されたままになります。 これにより、フォークオーナーは作業を中断せずに作業を継続できます。 このようにパブリック フォークが別のネットワークに移動されなかった場合、それらのフォークのオーナーは適切なアクセス許可を取得してプルする必要があります。 以前はこれらのアクセス権が必要ではなかったとしても、(現在はプライベートになっている) 親リポジトリからの変更を取得して送信します。

プライベートリポジトリを削除する

パブリックリポジトリを非公開にしてから削除しても、そのパブリックフォークは別のネットワークに存在し続けます。

プライベートリポジトリのパブリックリポジトリへの変更

プライベートリポジトリが公開されると、そのプライベートフォークはそれぞれスタンドアロンのプライベートリポジトリになり、独自の新しいリポジトリネットワークの親になります。 プライベートフォークは、公開されるべきではない機密のコミットを含む可能性があるため、自動的に公開されることはありません。

パブリックリポジトリを削除する

プライベートリポジトリを公開してから削除しても、そのプライベートフォークは独立したプライベートリポジトリとして別々のネットワークに存在し続けます。

内部リポジトリの表示を変更する

Enterprise のポリシーでフォークが許可されている場合、内部リポジトリのフォークはすべてプライベートになります。 内部リポジトリの表示を変更した場合、Organization または個人アカウントが所有するフォークはすべてプライベートのままになります。

内部リポジトリを削除する

内部リポジトリの表示を変更してからリポジトリを削除すると、フォークは別のネットワークに引き続き存在します。

参考資料