git - 用乌龟 git 更新 git 本地分支克隆
问题描述
建筑学:
- git repo A 在没有互联网的 PC A 上
- git repo C 是 gitA 的副本,通过 Git Clone 创建并位于硬盘上
- git repo B 是 gitC 的副本,通过 Git Clone 创建并位于 pcB 上
设想:
- gitA 是团队成员之间使用的共享文件夹
- 我在 pcB 上的 gitB 上工作
- 我需要从 gitB -> gitC -> gitA 更新文件
- 然后在解决与 gitA 中的成员冲突后从 gitA -> gitC -> gitB
我怎样才能实现上述场景?
解决方案
你正在以三角形的方式工作。
祝福的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 的镜像副本。避免推送到 C。C 是 A 的备份,因此。B 是工作副本,将直接推送到git fetch
从 A 继续前进并在 C 中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。
推荐阅读
- java - 将 JTable 添加到 JFreeChart ChartPanel
- php - 会话和会话变量不起作用
- php - Laravel 查询构建器到 Eloquent 构建器
- python - 将 pandas 数据框列中的字符串从以 R 结尾替换为以 Right 开头
- vert.x - 在springboot项目的verticles之间使用eventBus进行通信时没有地址处理程序
- c - 信号级分段错误
- amazon-web-services - 可以将 Elastic Beanstalk 从单个实例更新为负载均衡器,
- python - 嵌套列表中的元素垂直添加
- c# - Akka.NET 和 MVVM
- java - StringBuilder.delete 以有效长度失败