首页 > 解决方案 > 用乌龟 git 更新 git 本地分支克隆

问题描述

建筑学:

设想:

我怎样才能实现上述场景?

标签: gitgit-committortoisegitgit-clone

解决方案


你正在以三角形的方式工作。

祝福的repo是 A 并且在没有互联网连接的机器上共享。你在 B 上工作 。A 是 B 的起源,因此你从 B 推/拉到 A。这可以使用 Tortoise 上下文菜单从你的工作仓库中实现,应该没什么大不了的。

C 是 A 的备份,在具有 Internet 连接的机器上。因此,C 实际上是受祝福的回购,B 是 C 的孩子。B 应该能够直接推/拉到 C。B 和 C 不是父子关系,而是兄弟姐妹。您可能会说 C 是您的同事 Carlo 正在处理的 PC C 上的存储库。

您想从 B 推送到 C。为此,应将 B 的遥控器设置为 C,而不是 A。然后您想从 C 推送到 A。换个说法,您想将更改推送到您的同事 Carlo ,然后让 Carlo 将任何内容发布到受祝福的存储库A。这里唯一的问题是 Carlo 不存在。

我建议您将 C 制作为 A 的镜像副本。避免推送到 CC 是 A 的备份,因此git fetch从 A 继续前进并在 C 中。B 是工作副本,将直接推送到A C 并直接从A C拉取。“嘿,但是我们为解决 A 中的冲突所做的任何更改也将在 B 中,我不希望那样!” 不,你想要那个,因为这些更改迟早会进入 B。

您的备份 C 应该是git clone --mirror查看文档

设置源存储库的镜像。这意味着--bare。与 相比--bare--mirror不仅 源的本地分支映射到目标的本地分支,它还映射所有 refs(包括远程跟踪分支、注释等)并设置 refspec 配置,使得所有这些 refs 都git remote update 被目标存储库。

git remote update每当您能够将 USB 记忆棒 (?) 连接到没有互联网连接的 A 时,用于将您的更改从 C 推送到A。


推荐阅读