在 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,自己新建一個私有倉庫并把代碼導入。