无私有远程仓库权限的提交者如何同步代码?该模式能否持续?
该Git离线协作模式能否持续运行?
可以持续运行,只要A和B遵循规范的补丁同步流程,就能在无需B再次发送仓库压缩包的前提下,长期维持协作。
核心逻辑
由于假设仅由A进行提交,远程仓库的所有变更都来自A的补丁,A的本地仓库提交历史与远程仓库会始终保持线性一致,不会出现分支合并或冲突问题。
具体协作流程
- 初始阶段:B将仓库压缩包发送给A,A解压后搭建本地Git仓库。
- A本地开发并提交:完成代码修改后执行
git commit生成提交记录。 - A生成增量补丁:使用
git format-patch -1 HEAD(单提交场景)或git format-patch <上次同步的提交哈希>..HEAD(多提交场景)生成增量补丁文件,通过邮件发送给B。 - B同步补丁到远程:
- 先执行
git pull确保本地仓库为远程最新状态(因仅A提交,此步骤实际不会有新变更,但能避免潜在问题)。 - 使用
git am <补丁文件>应用A的补丁。 - 执行
git push将补丁对应的提交推送到私有远程仓库。
- 先执行
- 循环协作:A基于本地已同步的提交继续开发、提交、生成补丁,重复上述流程即可。
关键注意事项
- 必须保证A的本地仓库提交历史与远程完全线性一致,避免在本地执行重置、变基等会修改历史的操作,否则补丁会出现冲突。
- 始终使用增量补丁而非全量补丁,既减少传输体积,也避免重复内容导致的应用失败。
内容的提问来源于stack exchange,提问作者rsmoorthy
相关产品推荐
相关产品推荐

