我有一个私人git仓库,我开发了一个软件。在某些时候,我想公开该软件的一部分 - 缺少开发版的一些功能。因此,我想从开发人员创建第二个版本库。但是,发行版回购不应该包含dev版本的一些文件。另一方面,我希望能够跟踪开发版本中的更改,即,我希望能够将更改从dev repo中提取到发布回购中。我如何用git做到这一点?
答案 0 :(得分:1)
只需将发布分支(按惯例,master)推送到作为新远程添加的公共存储库,并将所有其他分支仅保留在私有存储库上,即可轻松实现。
git remote add public-repo-alias <public-repo-address> (first time config only)
git push public-repo-alias master
这要求您至少使用基本的feature branch workflow,无论如何都应该这样做。
请注意,如果到目前为止您已完成的未完成功能的隐私性是一个问题,并且您没有关注某种功能分支工作流程,那么您无法在不覆盖历史记录的情况下根除历史记录中的不需要的文件。在某个地方,发布分支将有一个“删除foo,baz和bar”提交,代码将是可恢复的。
另请注意,标准的处理方式是简单地使用合理的工作流程,将master作为发布分支,并保持一切公开...如果您是开源软件,那么为什么不让人们看到开发分支贡献?
答案 1 :(得分:1)
你不是......你编写的脚本只将相关文件复制到由git管理的第二个文件夹,执行git commit和git push到发布库
答案 2 :(得分:0)
作为替代方案,如果您只关心Dev中的功能,则应考虑使用Features Toggles模式。这是添加配置键以启用/禁用功能。
的基本模式