没有网络连接的情况下如何将在两个不同的 git 仓库之间共享代码更改
· 阅读需 2 分钟
1. 仓库 A:生成补丁
假设你已经在仓库 A 中做了一些更改,并提交了这些更改。
1.1. 首先,导航到仓库 A 的目录:
cd /path/to/repoA
1.2. 使用git format-patch
生成补丁。例如,如果你想为最后一个提交生成补丁:
git format-patch -1 HEAD
这会生成一个以.patch
结尾的文件。文件名通常包含提交的哈希值和提交信息。
生成指定分支
如果你只想生成 dev
分支中从 6cb7ceaab94573a13d1e2e7fa2095b5456fde5bd
之后的所有提交的补丁,你可以明确指定范围,以确保只考虑 dev
分支的提交。以下是如何做到这一点的命令:
bashCopy code
git format-patch 6cb7ceaab94573a13d1e2e7fa2095b5456fde5bd..dev
这会为 6cb7ceaab94573a13d1e2e7fa2095b5456fde5bd
之后的 dev
分支上的所有提交生成补丁。这样,你就可以确保只是针对 dev
分支的更改生成补丁,而不会包括其他分支的提交。
2. 仓库 B:应用补丁
现在,你需要将上一步生成的补丁文件从仓库 A 传输到仓库 B 的机器上。你可以使用电子邮件、USB 驱动器、网络共享等任何方法来做到这一点。
2.1. 在仓库 B 的机器上,导航到仓库 B 的目录:
cd /path/to/repoB
2.2. 使用git apply
来应用补丁:
git apply /path/to/patchfile.patch
这样,仓库 B 就会包含仓库 A 的那些更改。
注意:如果补丁不能直接应用,git apply
可能会报错。这通常是因为两个仓库之间的代码有较大的差异。在这种情况下,你可能需要手动解决冲突或在应用补丁时使用某些额外的选项。