使用带有两个不同云的git分支同时维护私有和公共仓库

时间:2014-10-14 05:21:53

标签: git github version-control bitbucket

首先,我是git的新手,并且还在玩游戏以了解更多信息。 :)

我使用Github作为我的公共回购,而Bitbucket则用于私人回购。每当我推送到github时,我都会手动删除那些不需要的东西然后公开推送它们然后再将它们粘贴回来以维护私人仓库。

但是在学习了git branch之后,我想到了很多方法可以解决这个问题,但实际上我并不确定。我的想法是:

  • 我将对所有公开更改进行分支
  • 我将使用master进行所有私人更改(或者反之亦然)
  • 然后在"私人"分支我将git remote add origin设置为bitbucket repo HEAD,然后推送东西
  • 和" public"分支我将git remote add origin设置为github repo HEAD,然后推送东西

我是正确的吗?如果没有,我该怎么办呢?

1 个答案:

答案 0 :(得分:2)

几乎。您可以添加两个遥控器,但它们不能同时命名为原点。我只是将它们命名为github和bitbucket但实际名称并不重要。然后将适当的远程设置为本地分支的远程跟踪分支:

git remote add github git@github.com:...
git remote add bitbucket git@bitbucket.com:...

git branch -u github/public_branch_name public_branch_name
git branch -u bitbucket/private_branch_name private_branch_name

# syntax is:
# git branch -u <remote>/<remote_branch_name> <local_branch_name>

在最后两个命令中,最后一个参数是你在本地调用你的分支,倒数第二个参数包含在遥控器上调用分支的内容(在斜杠之后)。这两个名字不一定相同。你可以很容易地做到

git branch -u github/master public_branch_name
git branch -u bitbucket/master private_branch_name

并且有人看到你的存储库并不是更明智的事情。当然,你必须记住发生了什么。您可以使用git branch --all -vv检查哪个分支跟踪的内容。