在两个远程存储库上使用GIT

时间:2016-12-13 20:04:59

标签: git github version-control bitbucket

我们为公司提供开发服务,他们也从另一家公司获得服务,他们不希望他们了解我们。

他们正在使用我完全访问的git存储库(但我必须避免向它写任何内容),而且我们还有另一个存储库用于我们自己的开发。

我想每周一次用他们的代码更新我们的主分支,同时我想继续将我们的开发推向另一个分支。在其他公司开发完成后,我计划将我们的开发项目合并到我们的主分支机构准备发布。

同时保持其他公司的发展历史也会很棒!

我正在使用SourceTree作为GIT界面,任何使用它的指令都会很棒!

我应该遵循什么样的流程?

3 个答案:

答案 0 :(得分:1)

由于您需要从其他公司的分支机构合并到主分支机构,因此这是无关历史记录合并。但SourceTree不支持合并--allow-unrelated-histories,因此您最好使用git command line。下面是git命令供您参考:

git clone <URL for your own repo>
git remote add otherrepo <URL for the other company’s repo>
git pull otherrepo                                      #pull otherrepo to your local repo
git merge otherrepo/master --allow-unrelated-histories  #merge otherrepo’s master branch to your local master branch

在更新了其他公司的回购后,您需要再次使用git pull otherreopgit merge otherrepo/master --allow-unrelated-histories

完成所有操作后,您可以使用git checkout mastergit merge develop将开发分支合并到主分支。

答案 1 :(得分:0)

您的本地仓库可以指向多个远程仓库。 指向远程仓库的对象称为&#34;远程&#34;。 通常,您克隆的远程仓库将在本地仓库中命名为origin。 您可以使用其他名称(例如,客户来源)创建远程。 然后,您可以从客户来源克隆,创建一个本地分支进行处理,并将该分支推送到您公司的仓库(可能称为原产地)。 然后,当您想要从客户更新时,切换回从中克隆的分支,并从名为customer-origin的远程中拉出。 然后,您可以将其合并到您的开发分支。 在sourcetree中我已经读过设置 - &gt; add是添加新远程的地方,但我不是使用源代码树的专家。

答案 2 :(得分:0)

首先,您可以将其他公司代表添加为新的远程

git remote add companyName https://github.com/user/repo.git

每周更新:

  1. git pull companyName master
  2. 在SourceThree中,您可以在此处放置一个标记来控制更新:)
  3. git push origin master
  4. 如果这是更改主服务器的唯一方法,则不会产生任何冲突。我想这个修补程序将出现在 companyName master

    发布合并:

    只需正常合并,使用:git merge dev并解决冲突。

    希望有所帮助

    编辑:

    ps:你也可以使用&#39; git flow&#39;在开发和发布......它将防止一些问题xD