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 协议在机器之间进行访问。