リポジトリが削除されたり可視性が変更されたりするとフォークはどうなりますか?
リポジトリを削除したり、その可視性を変更したりすると、そのリポジトリのフォークに影響します。
警告:
-
人からプライベートリポジトリへのアクセス権を削除すると、その人のそのプライベートリポジトリのフォークは削除されます。プライベートリポジトリのローカルクローンは残ります。プライベートリポジトリへの Team のアクセス権が削除されたり、プライベートリポジトリへのアクセス権を持つ Team が削除されたりした場合、他の Team を通じてそのリポジトリへのアクセス権を持っていない Team のメンバーについては、そのリポジトリのプライベートなフォークは削除されます。
-
LDAP Sync が有効化されている場合、人をリポジトリから削除すると、その人はアクセス権を失いますが、その人のフォークは削除されません。3 か月以内にオリジナルの Organization のリポジトリにアクセス権のある Team にその人が追加されれば、次の同期の際にフォークへのアクセスが自動的にリストアされます。
-
あなたは、リポジトリへのアクセス権を失う人が機密情報や知的財産を削除したことを確認する責任を負います。
-
Organization のオーナーは、特定のプライベートリポジトリのフォークや、Organization 内の任意のプライベートリポジトリのフォークを禁止することができます。詳細は「Organization が所有するプライベートリポジトリのフォークを許可する」および「Organization 内のプライベートリポジトリのフォークを許可する」を参照してください。
プライベートリポジトリを削除する
プライベートリポジトリを削除すると、そのプライベートフォークもすべて削除されます。
パブリックリポジトリを削除する
パブリックリポジトリを削除すると、既存のパブリックフォークの 1 つが新しい親リポジトリとして選択されます。 他のすべてのリポジトリはこの新しい親から分岐し、その後のプルリクエストはこの新しい親に送られます。
プライベートフォークと権限
プライベートフォークは、上流あるいは親リポジトリの権限構造を継承します。たとえば上流のリポジトリがプライベートで、読み書きのアクセス権を Team に与えているなら、同じチームはそのプライベートの上流リポジトリのすべてのフォークへの読み書きアクセス権を持ちます。これによって、プライベートリポジトリのオーナーはコードの管理がしやすくなります。
パブリックリポジトリをプライベートリポジトリに変更する
パブリックリポジトリを非公開にすると、そのパブリックフォークは新しいネットワークに分割されます。 パブリックリポジトリの削除と同様に、既存のパブリックフォークの 1 つが新しい親リポジトリとして選択され、他のすべてのリポジトリはこの新しい親から分岐されます。 後続のプルリクエストは、この新しい親に行きます。
言い換えれば、パブリックリポジトリのフォークは、親リポジトリが非公開にされた後も、独自の別のリポジトリネットワークで公開されたままになります。 これにより、フォークオーナーは作業を中断せずに作業を継続できます。 このようにパブリックフォークが別のネットワークに移動されなかった場合、それらのフォークのオーナーは適切なアクセス許可を取得してプルする必要があります。 以前はこれらのアクセス権が必要ではなかったとしても、(現在はプライベートになっている) 親リポジトリからの変更を取得して送信します。
パブリックリポジトリで匿名の Git 読み取りアクセスが有効になっていて、そのリポジトリが非公開になっている場合、リポジトリのすべてのフォークは匿名の Git 読み取りアクセスを失い、デフォルトの無効設定に戻ります。 分岐したリポジトリが公開された場合、リポジトリ管理者は匿名の Git 読み取りアクセスを再度有効にすることができます。 詳細は「リポジトリで匿名 Git 読み取りアクセスを有効化する」を参照してください。
プライベートリポジトリを削除する
パブリックリポジトリを非公開にしてから削除しても、そのパブリックフォークは別のネットワークに存在し続けます。
プライベートリポジトリのパブリックリポジトリへの変更
プライベートリポジトリが公開されると、そのプライベートフォークはそれぞれスタンドアロンのプライベートリポジトリになり、独自の新しいリポジトリネットワークの親になります。 プライベートフォークは、公開されるべきではない機密のコミットを含む可能性があるため、自動的に公開されることはありません。
パブリックリポジトリを削除する
プライベートリポジトリを公開してから削除しても、そのプライベートフォークは独立したプライベートリポジトリとして別々のネットワークに存在し続けます。