GitHub公开仓库是否支持进行私有版本发布?
公开GitHub仓库实现部分内容私有发布的方案
完全可以实现,核心逻辑是将需要保密的变更内容和公开内容做隔离,常见的可行方案如下:
- 私有子模块方案
将需要私有存储的变更单独拆分为一个独立的私有仓库,在公开仓库中通过git submodule关联该私有仓库。公开仓库仅会保留子模块的引用指针,无私有仓库访问权限的外部用户无法查看私有内容,仅你授权的账号可以拉取到完整的私有变更。 - .gitignore忽略方案
如果你的私有变更仅需要在本地留存、不需要推送到远程公开仓库,直接把对应文件、目录的路径写入项目根目录的.gitignore文件即可。Git会自动忽略这些内容的变更追踪,不会将其提交到公开远程仓库。该方案仅适合不需要多设备同步私有变更的场景。 - 分支权限管控方案
GitHub付费套餐支持分支级别的访问权限配置,你可以将私有变更提交到单独的受保护分支,仅给授权账号开放该分支的访问权限,公开分支仅同步可对外发布的内容。免费版GitHub暂不支持该功能。 - 代码分层拆分方案
将项目拆分为公开核心层和私有扩展层两部分,公开代码全部提交到公开仓库,私有扩展代码单独在本地或私有仓库维护,发布时再做合并构建。如果需要对外发布构建产物,仅上传不含敏感信息的构建结果即可,不会泄露私有源代码。
注意:不要直接将私有内容提交到公开仓库的公开分支,即使后续删除对应提交记录,也存在内容被缓存、被爬取的风险,操作前请务必确认私有内容的路径已经做好隔离配置。
内容的提问来源于stack exchange,提问作者lakshmiravali rimmalapudi
相关产品推荐
相关产品推荐

