Skip to main content

このバージョンの GitHub Enterprise サーバーはこの日付をもって終了となりました: 2024-09-25. 重大なセキュリティの問題に対してであっても、パッチリリースは作成されません。 パフォーマンスの向上、セキュリティの向上、新機能の向上を図るために、最新バージョンの GitHub Enterprise サーバーにアップグレードしてください。 アップグレードに関するヘルプについては、GitHub Enterprise サポートにお問い合わせください

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

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

Warning

  • プライベートリポジトリへの個人のアクセス権を削除すると、そのプライベートリポジトリからその人が作成したフォークはすべて削除されます。 プライベートリポジトリのローカルクローンは残ります。 プライベート リポジトリへの Team のアクセス権が削除されたり、プライベート リポジトリへのアクセス権を持つ Team が削除されたりしていることに加え、他の Team 経由でのそのリポジトリへのアクセス権を Team のメンバーが持っていなければ、そのリポジトリのプライベート フォークは削除されます。
  • LDAP Sync が有効になっていると、ある人がリポジトリから削除された場合、その人はアクセス権を失いますが、その人のフォークは削除されません。 元々のOrganizationのリポジトリへのアクセスできるように3ヶ月以内にその人がTeamに追加されたなら、次回の同期の際にフォークへのアクセスは自動的に回復されます。
  • リポジトリへのアクセスを失った個人に、機密情報や知的財産を確実に削除してもらうのは、あなたの責任です。
  • プライベートまたは内部リポジトリへの管理アクセス許可を持つユーザーは、そのリポジトリのフォークを禁止することができます。組織の所有者は、組織内のプライベートまたは内部リポジトリのフォークを禁止することができます。 詳細については、「Organization のフォークポリシーを管理する」および「リポジトリのフォークポリシーを管理する」を参照してください。

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

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

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

パブリック リポジトリを削除すると、最も古く、アクティブなパブリック フォークの 1 つが新しい上流リポジトリとして選択されます。 他のすべてのリポジトリはこの新しい上流から分岐し、その後の pull request はこの新しい上流リポジトリに送られます。

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

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

注: 組織の基本アクセス許可を変更しても、プライベート フォークのアクセス許可は自動的に更新されません。 詳細については、「Organization の基本レベルの権限の設定」を参照してください。

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

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

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

パブリック リポジトリで匿名の Git 読み取りアクセスが有効になっていて、そのリポジトリが非公開になっている場合、リポジトリのすべてのフォークは匿名の Git 読み取りアクセスを失い、既定の無効設定に戻ります。 分岐したリポジトリが公開された場合、リポジトリ管理者は匿名の Git 読み取りアクセスを再度有効にすることができます。 詳しくは、「リポジトリに対する匿名 Git 読み取りアクセスを有効化する」を参照してください。

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

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

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

プライベート リポジトリが公開されると、そのリポジトリのプライベート フォークに以前にプッシュされたコミットを含む、そのリポジトリ内のすべてのコミットが新しいパブリック リポジトリ ネットワークに移行され、すべてのユーザーに表示されるようになります。 以前に作成されたプライベートフォークはプライベートのままですが、公開された元のリポジトリから切断されます。 各プライベート フォークは個別のプライベート リポジトリになり、リポジトリの独自の独立したネットワークを作成します。 これらのネットワークに対して行われた新しい変更は、公開された元のリポジトリからはアクセスできません。

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

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

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

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

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

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

参考資料