【问题标题】:Working with GIT on two remote repositories在两个远程存储库上使用 GIT
【发布时间】:2017-04-29 00:26:53
【问题描述】:

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

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

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

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

我使用 SourceTree 作为 GIT 接口,任何带有它的指令也很好!

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

【问题讨论】:

    标签: git github version-control bitbucket


    【解决方案1】:

    您的本地仓库可以指向多个远程仓库。 指向远程仓库的对象称为“远程”。 通常,您从中克隆的远程存储库将在您的本地存储库中命名为 origin。 您可以创建一个具有不同名称的遥控器(例如 customer-origin)。 然后,您可以从客户来源克隆,创建一个本地分支来处理,并将该分支推送到您公司的存储库(可能称为来源)。 然后,当您想从客户那里更新时,切换回您从他们那里克隆的分支,并从名为 customer-origin 的远程拉取。 然后你可以将它合并到你的开发分支。 在 sourcetree 中,我读到 settings->add 是添加新遥控器的地方,但我不是使用源树的专家。

    【讨论】:

      【解决方案2】:

      首先,您可以将其他公司代表添加为新的遥控器

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

      每周更新:

      1. git pull companyName master
      2. 在 SourceThree 中,您可以在此处放置一个标签来控制更新:)
      3. git push origin master

      如果这是更改主控的唯一方法,则不会产生任何冲突。我想修补程序将出现在 companyName master 中。


      发布合并:

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


      希望对你有帮助

      编辑:

      ps:你也可以在开发和发布中使用'git flow'...它会防止一些问题xD

      【讨论】:

        【解决方案3】:

        由于您需要从其他公司的分支合并到您的主分支,这是一个不相关的历史合并。但是 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
        

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

        全部完成后,可以使用git checkout mastergit merge develop将develop分支合并到master分支。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2012-01-27
          • 2014-09-12
          • 1970-01-01
          • 2020-10-21
          • 2015-03-25
          • 2011-05-09
          • 1970-01-01
          • 2020-11-20
          相关资源
          最近更新 更多