2014-08-28 40 views
2

改写问题:如何将远程git仓库配置为现有本地仓库的新分支,其单个分支已链接到不同的远程仓库。将两个git远程仓库配置为两个对应的本地分支

我有两个git仓库(项目)托管在两个不同的网站(github和内联网站点)。

它们彼此相似,因为它们是从相同的基础文件夹开始的。我想这两个项目合并成一个单一的Git项目,使得

  • 本地分行的“主人”点GitHub库的“主人”分支
  • 本地分支“intranet_branch”指向Intranet站点回购的“主人”分支

回答

2

看着以前的#1 question我想出了一个办法来实现这个作为follows

  • CD链接到GitHub库本地文件夹

    cd ~/projects/prj_a 
    
  • 更新的.git/config来限制分支映射,使得当地的“主人”分支点到GitHub的“主人”分支

    [remote "origin"] 
    url = [email protected]:user/prj_a.git 
    fetch = +refs/heads/master:refs/remotes/origin/master 
    
  • 添加新的git远程

    git remote add intranet [email protected]_server:user/intranet_project.git 
    
  • 更新的.git /配置,使得新的git远程被取入新的远程分支

    [remote "intranet"] 
    url = [email protected]_server:user/intranet_project.git 
    fetch = +refs/heads/master:refs/remotes/intranet/intranet_branch 
    
  • 来自新的远程回购取分支

    git fetch intranet 
    
  • 结帐新的远程的分支到一个新的地方分支。这也将切换到新分支。这是指向Github上

    git merge master 
    
  • 解决合并冲突,并承诺

  • 从intranet_branch推

    git checkout -b intranet_branch intranet/intranet_branch 
    
  • 合并主分支intranet_repo的主分支

    git push intranet intranet_branch 
    

再次测试一切

$ git checkout master 
     Switched to branch 'master' 
     Your branch is up-to-date with 'origin/master'. 
    $ git pull origin master 
     .... 
     * branch   master  -> FETCH_HEAD 
     Already up-to-date. 
    $ git push origin master 
     Everything up-to-date 
    $ git checkout intranet_branch 
     Switched to branch 'intranet_branch' 
     Your branch is up-to-date with 'intranet/intranet_branch'. 
    $ git pull intranet intranet_branch 
     ... 
     * branch   intranet_branch -> FETCH_HEAD 
     Already up-to-date. 
    $ git push intranet intranet_branch 
     Everything up-to-date 
相关问题