保留2个github回购';同步

保留2个github回购';同步,git,github,Git,Github,我在github上有两个git存储库—开发repo和生产repo。所有的日常工作都致力于开发repo,每当我想将代码投入生产时,我都希望同步生产repo以获得最新的更改,并且从那里我设置了自动化以将其部署到我们的生产环境中 到目前为止,我将开发repo克隆到了生产repo中,这对于获取所有文件都很有效。但现在我在开发回购中做了一些改变,我想把它们推进生产回购 我试着从我的生产回购中运行“git pull”,但这给了我一个长长的合并冲突列表 我应该使用什么git命令?如果您致力于使用两个不同的存储

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

到目前为止,我将开发repo克隆到了生产repo中,这对于获取所有文件都很有效。但现在我在开发回购中做了一些改变,我想把它们推进生产回购

我试着从我的生产回购中运行“git pull”,但这给了我一个长长的合并冲突列表


我应该使用什么git命令?

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

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
命令。例如:

git remote add production https://github.com/[organization]/production-repo.git
这将允许您在希望将LDR中的更改推送到RPR时调用git push production master


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

为什么你使用不同的回购协议,而不是简单地在一个回购协议中使用两个分支机构?这正是分支的目的所在,我担心你会因为有两种不同的回购协议而使事情变得不必要的复杂。因为我需要控制哪些开发人员可以实际将代码推送到生产环境中——正如我所理解的git,你不能设置每个分支的访问权限。我使用两个独立的repo,因为我需要控制哪些开发人员可以推送到生产环境。正如你提到的,我已经从LPR推送到RPR,但我将从Github删除它并重新创建。这个解决方案对你有用吗?一切都按照您希望的方式工作?添加远程repo工作得很好,但是当我推送时,我得到以下错误:src refspec master与推送示例中“master”所指的任何内容都不匹配?回购协议名称,分支机构名称?