保持2个github repo同步

时间:2014-07-09 23:49:26

标签: git github

我在github上有2个git存储库 - development-repo和production-repo。所有的日常工作都致力于开发 - 回购,每当我想将代码投入生产时,我想同步生产回购以获得最新的更改,并从那里我自动设置将其部署到我们的生产环境。

到目前为止,我将development-repo克隆到了production-repo中,并且可以正常运行以获取所有文件。但是现在我在开发回购中做了一些改变,我想把它们推到生产回购中。

我尝试过运行' git pull https://github.com/[organization]/development-repo.git'从我的生产回购,但这给了我一个合并冲突的looong列表。

我应该使用什么git命令?

1 个答案:

答案 0 :(得分:0)

如果您致力于使用两个不同的存储库而不仅仅是一个不同的分支,我建议您在本地开发存储库中设置两个不同的远程存储库。我猜这就是你当前的存储库布局。

local development repository (LDR)  -->  remote development repository (RDR)

local production repository (LPR)   -->  remote production repository (RPR)

这可能是您希望存储库布局的样子。

local development repository  -->  remote development repository
                             \
                              `->  remote production repository

使用第一个布局,开发存储库和生产存储库可以共享完全相同的文件,但它们具有完全不同的提交。这使得尝试将它们同步为非常手动的任务。基本上你必须将所有文件从LDR复制到LPR并创建一个新的提交并将其推送到RPR。

要实现第二种布局,可以在LDR的上下文中发出git remote add <name_of_remote> <github_address>命令。例如:

git remote add production https://github.com/[organization]/production-repo.git

这样,只要您希望将LDR中的更改推送到RPR,就可以调用git push production master

注意如果您已经从LPR推送到RPR,那么您有点卡住了。由于存储库完全不同,当您尝试从LDR推送到RPR时,您可能会得到一些奇怪的警告消息。不知道他们会脱离我的头脑。您可能必须在GitHub上删除RPR并重新创建它。那或你可以使用总是非常危险的force push