2017-10-11 36 views
1

我想从GitHub克隆一个开源项目,但我想使用Bitbucket作为远程存储库主机,因为它的私有仓库是免费的。如何从GitHub复制项目,但使用Bitbucket作为远程存储库

我不打算fork/pull请求,但是当原始项目得到更新时,我想将更新拉到我的本地存储库并合并。

我想最终我需要两个远程存储库。 (来源和上游?)

什么是建立这样的环境的正确/最安全的方法?

+2

我想你已经描述了一个合适的解决方案。你需要两个遥控器,一个指向gitub,一个指向bitbucket。名称'origin'和'upstream'对于这种设置非常典型。首次推送分支时,请确保使用'-u'设置正确的远程追踪分支。 – larsks

+0

谢谢,很高兴知道我正处在一个正确的方向。我只知道git的基本命令,从来没有在这个级别尝试过任何东西。我已阅读过许多博客文章和文章,但找不到完全相同的情况。 –

回答

1

我刚刚在GitHub上测试了一个项目:google-calendar-backup

首先,我登录到我的Bitbucket帐户并创建了一个名为google-calendar-backup的私人Git回购协议。

然后,我做了以下步骤:
(注:我在Windows上,这样的路径可能是您的机器上的不同)

  1. 克隆原来从GitHub

    回购
    git clone https://github.com/christianspecht/google-calendar-backup C:\LocalDir 
    
  2. 这将在本地repo中创建一个指向GitHub的远程“origin”。
    既然你想主要使用Bitbucket,Bitbucket应该是“主”远程origin,所以我们将重命名现有的。

    cd c:\localdir 
    git remote rename origin upstream 
    
  3. 转到本地目录,并添加到位桶回购作为第二遥控:

    git remote add origin https://bitbucket.org/christianspecht/google-calendar-backup 
    
  4. (可选)同时显示遥控器:

    git remote -v 
    

    在我的机器,我得到这个结果:

    origin https://bitbucket.org/christianspecht/google-calendar-backup (fetch) 
    origin https://bitbucket.org/christianspecht/google-calendar-backup (push) 
    upstream  https://github.com/christianspecht/google-calendar-backup (fetch) 
    upstream  https://github.com/christianspecht/google-calendar-backup (push) 
    
  5. 按各分公司到位桶一旦

    git push -u --all origin 
    

    结果:

    Username for 'https://bitbucket.org': christianspecht 
    Password for 'https://[email protected]': 
    Counting objects: 30, done. 
    Delta compression using up to 4 threads. 
    Compressing objects: 100% (30/30), done. 
    Writing objects: 100% (30/30), 4.41 KiB | 0 bytes/s, done. 
    Total 30 (delta 12), reused 0 (delta 0) 
    To https://bitbucket.org/christianspecht/google-calendar-backup 
    * [new branch]  master -> master 
    Branch master set up to track remote branch master from origin. 
    

    (感谢larsks-u - 我不知道这一点,我还在学习的Git自己)


就是这样。现在您可以进行更改并推送至origin(Bitbucket)。
偶尔,您需要从upstream(GitHub)取得原始项目的新更改。

+0

谢谢,它工作完美。我也需要以同样的方式设置另一台计算机。但是因为我已经将代码推送到Bitbucket存储库,所以我想在Github上克隆这个代码而不是原始代码,然后在Github库中添加一个上游分支。我明天再试。 –

相关问题