使用git管理单个应用程序的开源和高级版本

时间:2012-11-04 19:11:13

标签: git github project-management

  

可能重复:
  How to keep public and private versions of a git repo in sync?

我们有一个使用git在GitHub上开源的应用程序,但我们希望split并创建项目的新版本premium,即我们要添加开源版本中没有的功能。我们仍然需要能够对开源版本进行修复和更改。

问题在于我们不能简单地创建branch,因为高级版本应该是GitHub上的私有仓库,其中开源版本在GitHub上是公开的。

因此,如果我们只是在GitHub上创建一个新的私人仓库并克隆现有项目,那么现在我们有两个独立的项目,当我们进行更改/修复时,我们必须将这些应用于两者。无论如何要管理这个吗?

工作流程大多数更改仅适用于高级版本,但我们可能需要修补和修复应该适用于开源版本和高级版本的内容。

1 个答案:

答案 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