GIT:管理两个远程开发团队之间的回购协议
如果之前有人问过这一问题,那么表示歉意;如果有,则表示歉意;如果没有,则表示歉意 我在两个不同的国家有两个开发团队,每个开发团队都在从事同一个项目,但开发人员都在反对本地办公室的Git回购协议。每个办公室在不同的时区工作,大约相隔8小时,但我们喜欢每小时更新一次。因此,开发人员在办公室拉/推到他们自己的回购协议,而办公室拉/推到他们自己的回购协议。项目代码/结构相同 OfficeA是真正的主机,是CI和UAT部署的地方。因此,我们设置如下:GIT:管理两个远程开发团队之间的回购协议,git,Git,如果之前有人问过这一问题,那么表示歉意;如果有,则表示歉意;如果没有,则表示歉意 我在两个不同的国家有两个开发团队,每个开发团队都在从事同一个项目,但开发人员都在反对本地办公室的Git回购协议。每个办公室在不同的时区工作,大约相隔8小时,但我们喜欢每小时更新一次。因此,开发人员在办公室拉/推到他们自己的回购协议,而办公室拉/推到他们自己的回购协议。项目代码/结构相同 OfficeA是真正的主机,是CI和UAT部署的地方。因此,我们设置如下: OfficeB将其回购设置作为OfficeA回购的克
- OfficeB将其回购设置作为OfficeA回购的克隆镜像: git克隆--镜像git@gitlab:project.git
- 为OfficeB设置了一个每小时一次的任务,通过OfficeA的更改更新他们的回购协议(没有人进行分支,我们都只是在主分支上工作:
git fetch
git推送
或者两个克隆的repo都应该是具有工作目录的标准克隆?这不是一个简单的问题 当您有两个存储库同时更新其中的每一个存储库时,同步它们时可能会发生冲突 冲突可能需要人与人之间的交互才能以正确的方式解决。解决这一问题的一种方法是始终同步,当推到B时,A被锁定,然后B推到A,A被再次解锁,反之亦然。这可能不是一个好的解决方案。我想你有带宽限制,否则所有开发人员都会工作直接用A 所以,让我们做一些魔术。你有一个时区差异。让我们每天移动主存储库两次 让B只读,让所有开发人员推送A。让B拉。让A只读,让所有开发人员推送B。让A拉,依此类推 您将始终具有快进更新(如果不重写历史记录,则需要其他同步方式,如rsync),因此不会出现合并问题
还有一些智能DNS(或者git钩子)逻辑您可以使这对开发人员完全透明。例如,当B为只读时,从B推送将自动推送到A,当然速度较低,但仍然可以工作。如果您仅每小时更新一次,而不是每次提交后更新一次,您如何保持存储库同步。我想,每次更改后您应该如何同步(顺便说一句,它是Git,不是Git。)每次更改后同步是可能的,但没有太多的用法同时发生来保证这一点。我的帖子中拼写为Git,只是没有主题行。你知道,就像电子邮件前缀一样。为什么这么暴躁?“没有人在分支,我们都只是在主分支上工作”-这可能是您需要解决的第一件事…学习如何正确使用git将使大多数其他问题更容易解决。我完全理解这一点,这也是我关心的问题,但这是我们总部的运作方式(也是谁错误地指导我使用当前有缺陷的模型)感谢到目前为止的回复!HQ repo无法从外部访问,我希望避免本地开发者需要使用VPN帐户进行设置,同时更新OfficeB网络以允许建立VPN连接的加密形式和其他安全设置。OfficeB repo站点位于ou的服务器上r数据中心设置有永久性VPN连接,因此此模型看起来很合理。我们已经更新,以便更好地向各位专家传达我建议的方法,无论是对是错…一如既往,所有人都感到荣幸和赞赏。。。