如何在GitHub上将公共仓库转换为私有仓库,或者将私有仓库转换为公共仓库?

57

我似乎找不到实现这个的方法。这真的可能吗?鉴于这在我的情况下很重要,是否有一种代码管理平台可以实现这一点?


4
阅读此处 将仓库设为私有。同时,如果您能提及已尝试的方法以及具体未成功之处会更好。 - Tarun Khosla
2
既然这是互联网,我认为一旦某些事情已经公开,就无法完全变成私密的了... - Right leg
请注意:https://github.blog/changelog/2020-07-10-default-visibility-for-new-repositories/ - VonC
1
@Rightleg 未来对代码库的所有提交和更改都将是私有的,只要代码库保持私有状态,我想应该不会有问题。 - Pulseczar
3个回答

53

不要来回切换GitHub存储库的可见性状态(这可以通过存储库设置中的“危险区域”部分实现),我更愿意建立两个存储库:

  • 一个公开的,只包含公开内容
  • 一个私有的,包含公开和私人内容的混合体

这样,当向存储库推送代码时,你就无需担心它今天是公开还是私有:你只需向特定的存储库(其中之一)推送即可,完全知道其可见性状态。
这样你就永远不会暴露私密内容,因为如果将私人内容设置为公开,即使只有几分钟,... 它也不再是真正的私密(因为它可以被克隆、复制并在其他地方推送)。


话虽如此,自2020年6月以来,您拥有了一个 "更新的更改存储库可见性的用户界面":

现在,您可以从存储库设置中的单个对话框中将存储库设置为任何可用的可见性选项 - 公共、私有或内部。

以前,您需要浏览不同的部分、按钮和对话框来在公共和私有之间以及在私有和内部之间进行更改。

请参阅 "设置存储库可见性"。

https://docs.github.com/assets/images/help/repository/repo-change-select.png

(*) 由于可见性变化的后果,这是一种“破坏性操作”:

  • 从公开变为私有:在将可见性更改为私有后,存储库中将无法使用某些功能。任何已发布的 GitHub Pages 网站都将自动取消发布。
    GitHub 高级安全功能(如代码扫描)将停止工作。

  • 从私有变为公开:GitHub 将分离私有分支并将其转换为独立的私有存储库。


请注意,自2020年7月10日起,默认可见性为私有

新仓库的默认可见性

当您创建一个仓库时,可以选择它是私有的还是公开的。
现在,当您通过组织的单一登录服务登录GitHub并通过网站导航创建一个新的仓库时,默认选择是私有的。
这有助于防止敏感公司数据无意中被推送到公共仓库。有关此选择的更多信息,请参阅有关仓库可见性的文章。

为什么警告会说“警告:这是一项可能具有破坏性的操作。”? - Blade
1
@Blade 很好的问题。我已经编辑了答案来回应你的评论。 - VonC
@VonC 我不确定我是否理解您提出的拥有2个存储库的建议。这个想法是两个存储库的内容是不相交的吗? - James Hirschorn
1
如果您希望在私有数据和公共数据之间实现最大安全性,那么是的:使用具有不同内容/历史记录的两个不同仓库。 - VonC

9

如需将 GitHub 上的存储库从公开更改为私有,或者反之,请按照以下说明操作:

  1. 进入您在 GitHub 上的存储库
  2. 进入“设置”选项卡
  3. 向下滚动到标记为“危险区域”的部分
  4. 更改存储库的公共/私有状态:
    1. 将其设置为私有:单击标记为“设为私有”的按钮并按照说明操作
    2. 将其设置为公开:单击标记为“设为公开”的按钮并按照说明操作

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接