在不断发展的项目上为2个遥控器保留一个公共存储库

时间:2019-05-21 13:11:17

标签: git

我们正在开始一个采用当前Sitecore 8.2并将其更新为9.0.1的项目。

我们是一家大商店,因此在进行迁移和计划几个月的工作时,开发仍必须继续进行。

我在弄清楚如何通过git管理源代码时遇到了麻烦,特别是因为我们正在从本地服务器迁移到Azure并遇到部署问题,这些问题最终将得到解决。

我们的计划是拥有2个git存储库,一个用于本地服务器(存储库A),另一个用于我们的迁移项目(存储库B)。理想情况下,我可以将我们的更改从存储库A推送到存储库B,但是我遇到很多麻烦/问题:

  • 考虑到它们将不再共享相同的祖先/代码,我如何才能将对仓库A的开发和更改推到仓库B?

到目前为止,我已经尝试对位于存储库(a)中的一个小项目进行小的更改,然后将它们推送到另一个存储库(b),但是每次遇到以下错误时:

hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. Integrate the remote changes (e.g.
hint: 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.

我的意思是,我得到了错误,但是我不想拉远程分支(b),我只想将我的代码推送到远程b的分支中,以便我们可以将其与我们的新分支合并正在更新的项目上的代码。项目完成后,我们将放弃存储库A,但仍将对存储库B进行修改,因此损失应为零,但是我很难弄清这部分。

2 个答案:

答案 0 :(得分:1)

考虑将存储库A复制/分叉为存储库B,然后偶尔从A合并到B?使用遥控器git remote add来处理它,它看起来应该像git merge repoA/master repoB/master,其中repoA指向您的本地git,repoB指向您的Azure git。

答案 1 :(得分:1)

如果您要在两个存储库之间共享分支(如果完全可能,从技术POV中,从技术上讲完全有可能),则可以通过一个带有两个远程控制器的本地存储库来实现设定。说,repo1和repo2。假设有一个分支repo1 / blah,您想进入repo2:

git checkout -b blah # create local branch blah from repo1/blah
git push repo2 blah

在这里,您将blah从repo1复制到了repo2。然后,您可以像往常一样工作,在不同的回购协议(共享祖先)上拥有单独的分支机构,然后可以合并并推送,并像往常一样开心。