我们的团队必须使用几个 xtest 文件。为了避免冲突并拥有历史,我们想使用 git。问题如下:
- 从周一到周四,大多数但不是所有人都将在网络 A 中使用一些台式 PC 工作。
- 从周五到周日,大多数但不是所有人都将使用笔记本电脑在网络 B 内工作
- 出于安全原因,无法直接连接网络 A 和 B,只能使用 USB 闪存驱动器交换数据。
- 保留项目更改的历史记录至关重要。
在进行了一些研究并阅读了几个答案(例如两个相同的 git 存储库)之后,我有以下计划来满足我们的要求,但我不能 200% 确定它是否会奏效(或者是否可以更容易地完成)并且我希望得到您的一些反馈:
- 我们从网络 A 上的服务器上的一个裸存储库开始。每个人都在他们的台式 PC 上克隆这个存储库,并在一个主分支上使用它(从网络 A 中的服务器上的存储库拉取和推送到存储库)。
- 在第一个星期四,一个人(我们称他为 git-admin)在网络 A 中的本地台式 PC 上创建了一个新的裸存储库,将其添加为来自网络 A 的存储库的新远程,并将所有数据推送到这个本地裸存储库
- 然后,git 管理员将这个裸存储库放在他的 USB 闪存驱动器上,并将其复制到网络 B 中的服务器上。现在,在网络 B 中使用笔记本电脑工作的每个人都克隆这个存储库并从中拉取/推送
太好了,但是现在我们有两个中央存储库,并且可能发生在网络 A 和 B 中的人们都在处理它。因此,每周至少将它们合并一次以保持它们接近是至关重要的。历史必须保存在两个存储库中!这是我认为它变得有点棘手:
- 每周一,git 管理员最后一次从网络 B 的存储库中拉出一个,在他的笔记本电脑上启动一个新的裸存储库,将其添加为他的网络 B 存储库的新远程,并将所有数据推送到他笔记本电脑上的这个本地裸存储库.
- 然后,他将这个裸存储库放在他的 USB 闪存驱动器上,并将其复制到网络 A 中的台式电脑上。然后,首先他从网络 A 中的中央存储库中提取以保持最新状态。战后,他将来自网络 B 的裸存储库添加为从网络 A 克隆的存储库的新远程,从中提取,解决所有冲突并推送到网络 A 中的原始远程存储库和从网络 B 复制的本地裸存储库.
- 现在网络 A 中的中央存储库是最新的。然后,他取出裸存储库,再次将其放在他的 USB 闪存驱动器上,将其放在网络 B 中的笔记本电脑上,将其添加为网络 B 存储库的新远程,拉取、合并并推送到网络 B 中的中央存储库。
这个过程将在每周一和周四重复(反之亦然)。有什么建议可以让它更容易,或者这是要走的路吗?我不确定是否有必要使用裸存储库,以及是否可以将 git-admin 的正常最新本地存储库复制到相应的网络并将网络 A 和 B 的中央存储库添加为新的遥控器(取决于他正在使用的遥控器)并从中推拉。
对不起文字墙,谢谢你的帮助!