GIT:管理两个远程开发团队之间的回购协议

GIT:管理两个远程开发团队之间的回购协议,git,Git,如果之前有人问过这一问题,那么表示歉意;如果有,则表示歉意;如果没有,则表示歉意 我在两个不同的国家有两个开发团队,每个开发团队都在从事同一个项目,但开发人员都在反对本地办公室的Git回购协议。每个办公室在不同的时区工作,大约相隔8小时,但我们喜欢每小时更新一次。因此,开发人员在办公室拉/推到他们自己的回购协议,而办公室拉/推到他们自己的回购协议。项目代码/结构相同 OfficeA是真正的主机,是CI和UAT部署的地方。因此,我们设置如下: OfficeB将其回购设置作为OfficeA回购的克

如果之前有人问过这一问题,那么表示歉意;如果有,则表示歉意;如果没有,则表示歉意

我在两个不同的国家有两个开发团队,每个开发团队都在从事同一个项目,但开发人员都在反对本地办公室的Git回购协议。每个办公室在不同的时区工作,大约相隔8小时,但我们喜欢每小时更新一次。因此,开发人员在办公室拉/推到他们自己的回购协议,而办公室拉/推到他们自己的回购协议。项目代码/结构相同

OfficeA是真正的主机,是CI和UAT部署的地方。因此,我们设置如下:

  • OfficeB将其回购设置作为OfficeA回购的克隆镜像:

    git克隆--镜像git@gitlab:project.git


  • 为OfficeB设置了一个每小时一次的任务,通过OfficeA的更改更新他们的回购协议(没有人进行分支,我们都只是在主分支上工作:

    git fetch
    git推送

现在,由于时区的原因,一段时间内不会出现任何问题,但是上面提到的解决方案似乎不是我们应该做的,因为我们正在丢失代码,OfficeB通常在早上会丢失一两个提交,这是通过每个开发人员的机器的简单推送来实现的,因为更改不会从他们的本地机器上丢失

我进一步看了看,似乎这种整体方法是不正确的,而不是我们应该做的,因为镜像就是这样。那么,用远程设备维护总部回购的最佳解决方案是什么呢?每个回购由本地开发人员使用,双方的更改合并并推出,以便两台服务器相互反映?我猜OfficeB应该有两个repo,一个供开发人员使用,另一个是HQ的镜像克隆。然后同步脚本在OfficeB中的这两个repo文件夹之间进行更新和合并

请确认这是否是一种方式,并提供您的想法、脚本或任何可能有帮助的内容。Git似乎很强大,但非常令人困惑,文档中充斥着Git行话,这在我们的组织中给它带来了非常坏的名声:-(

我认为这对于在国际公司工作的人来说是一种非常常见的设置,因此很惊讶,要找到清晰简洁的提示,或者我的“谷歌搜索”简单地说是sux:-)

提前谢谢各位

提案

OfficeA保持原样…OfficeB创建OfficeA的裸镜像克隆…从镜像克隆中创建一个附加克隆,开发人员都使用该克隆。原始镜像纯粹用于同步进程,充当安全处理冲突的中介,一旦处理并解决冲突,它将推送到其远程主机


或者两个克隆的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连接,因此此模型看起来很合理。我们已经更新,以便更好地向各位专家传达我建议的方法,无论是对是错…一如既往,所有人都感到荣幸和赞赏。。。