可能重复:
How to keep public and private versions of a git repo in sync?
我们有一个使用git
在GitHub上开源的应用程序,但我们希望split
并创建项目的新版本premium
,即我们要添加开源版本中没有的功能。我们仍然需要能够对开源版本进行修复和更改。
问题在于我们不能简单地创建branch
,因为高级版本应该是GitHub上的私有仓库,其中开源版本在GitHub上是公开的。
因此,如果我们只是在GitHub上创建一个新的私人仓库并克隆现有项目,那么现在我们有两个独立的项目,当我们进行更改/修复时,我们必须将这些应用于两者。无论如何要管理这个吗?
工作流程大多数更改仅适用于高级版本,但我们可能需要修补和修复应该适用于开源版本和高级版本的内容。
答案 0 :(得分:1)
您可以选择要推送的存储库和分支。
第一步是在项目中添加两个单独的存储库:
git remote add private-repo git@github.com:user/private_repo.git
git remote add public-repo git@github.com:user/public_repo.git
创建两个分支:
git branch private-branch
git branch public-branch
将默认存储库设置为推送到:
git branch --set-upstream private-branch private-repo/master
git branch --set-upstream public-branch public-repo/master
或者,git push
允许您指定要推送的远程分支。
git push private-repo private-branch:master