在 GitHub 上,所有的 fork 都会继承其上游仓库(upstream)的可见性(visibility)设置:
-
可见性继承
- 如果你 fork 的原仓库是 public,那么你的 fork 也必须是 public。
- 如果原仓库是 private,你的 fork 同样会被创建成 private。
你无法把一个 public 仓库的 fork 调整为 private,因为这会违反 GitHub 对网络贡献(networked contribution)和可见性依赖的策略。
-
为什么不允许降级可见性?
- Fork 之间保持一致的可见性可以确保贡献者对同一个代码网络有相同的访问权限设定。
- 如果允许私有 fork,而上游依然是公共的,可能会导致权限管理和代码分支混乱。
-
如果你需要一个私有副本,怎么办?
- 办法一: 在本地
git clone
一下,然后新建一个 private 仓库 (New repository
→ 选择 Private),再把代码 push 上去。 - 办法二: 使用 GitHub 的「Import repository」功能,填入原仓库的地址,导入到一个新的私有仓库。
- 办法一: 在本地
小结:
由于 GitHub 强制要求 fork 与 upstream 保持相同的可见性,你看不到也调不了「Make private」的选项。如果真要私有,就得绕开 fork,自己新建一个私有仓库并把代码导入。