39.1 在本地创建 git 打包文件并在另一台机器上使用
有时你可能需要在没有网络连接的机器上维护 Git 仓库的版本。打包文件允许你在一台机器上的仓库中打包 Git 对象和引用,并将这些内容导入到另一台机器上的仓库中。
创建打包文件
标记提交:
git tag 2026_07_24
创建打包文件:
git bundle create changes_between_tags.bundle [some_previous_tag]..2026_07_24
这里 [some_previous_tag] 是你希望打包的起始标签,2026_07_24 是结束标签。
将打包文件传输到远程机器
将 changes_between_tags.bundle 文件传输到远程机器,例如通过 U 盘。
在远程机器上使用打包文件
验证打包文件完整性:
git bundle verify changes_between_tags.bundle
确保打包文件完整无损。
切换到目标分支:
git checkout [some branch]
在远程机器上的仓库中切换到目标分支。
列出打包文件中的引用:
git bundle list-heads changes_between_tags.bundle
列出打包文件中的引用。
拉取打包文件中的引用:
git pull changes_between_tags.bundle [reference from the bundle, e.g. last field from the previous output]
拉取打包文件中的指定引用。
反向操作
你也可以在远程仓库中进行更改后,将这些更改打包成差分文件;将更改放在 U 盘上,然后将其合并回本地仓库,从而让两个仓库保持同步,而无需直接通过 Git、SSH、rsync 或 HTTP 协议在机器之间进行访问。