专栏首页程序手艺人[ Git篇 ] Git-bundle

[ Git篇 ] Git-bundle

做项目过程中,经常遇到需要更新原厂的代码,有的时候发的patch,有的是发的bundle,stackoverflow 中有一个回答描述了两者的区别1

其实bundle将常用,其中Pro Git 一书中打包详细描述具体的方法2这里记录下常用的命令

  • git bundle create命令来打包
$ git bundle create repo.bundle HEAD master
Counting objects: 6, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (6/6), 441 bytes, done.
Total 6 (delta 0), reused 0 (delta 0)

然后你就会有一个名为 repo.bundle 的文件,该文件包含了所有重建该仓库 master 分支所需的数据。 在使用 bundle 命令时,你需要列出所有你希望打包的引用或者提交的区间。 如果你希望这个仓库可以在别处被克隆,你应该像例子中那样增加一个 HEAD 引用。

  • git bundle create命令来打包,指定打包区间
$ git bundle create commits.bundle master ^9a466c5
Counting objects: 11, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (3/3), done.
Writing objects: 100% (9/9), 775 bytes, done.
Total 9 (delta 0), reused 0 (delta 0)
 git bundle create commits.bundle master ^origin/mater 

只打包那些在master中而不在origin/master分支中的commits
  • git bundle verify校验是否合法
$ git bundle verify ../commits.bundle
The bundle contains 1 ref
71b84daaf49abed142a373b6e5c59a22dc6560dc refs/heads/master
The bundle requires these 1 ref
9a466c572fe88b195efd356c3f2bbeccdb504102 second commit
../commits.bundle is okay
  • git bundle list-heads列出顶端提交
$ git bundle list-heads ../commits.bundle
71b84daaf49abed142a373b6e5c59a22dc6560dc refs/heads/master
  • git fetch导入提交
//从包中取出 master 分支到我们仓库中的 'other-master' 分支:
$ git fetch ../commits.bundle master:other-master
From ../commits.bundle
 * [new branch]      master     -> other-master

当你在没有合适的网络或者可共享仓库的情况下,git bundle 很适合用于共享或者网络类型的操作。


  1. Difference between git bundle and .patch ↩︎
  2. Pro Git-打包 ↩︎

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Windows客户端C/C++编程规范“建议”——文件

    说明:#include <>和#include “”导致编译器在搜索文件时,搜索的路径顺序不同。所以需要正确使用#include,以避免包含错了头文件。

    方亮
  • 服务器架设笔记——搭建用户注册和验证功能

            之前介绍的Apache Httpd相关内容,都是些零散的知识点。而实际运用中,我们要根据不同的业务,将这些知识点连接起来以形成各种组合,来满足我...

    方亮
  • 一种解决运行程序报“应用程序配置不正确”的问题

            在我们开发工程中,可能有些情况下,不能在本机进行调试。这个时候我们一般会使用VM(vmware)建立一个虚拟机环境,然后把编译过的程序放在该虚拟...

    方亮
  • 在windows程序中嵌入Lua脚本引擎--使用VS IDE编译Luajit脚本引擎

            前些天听到一个需求:某业务方需要我们帮忙清理用户电脑上的一些废弃文件。同事完成这个逻辑的方案便是在我们程序中加入了一个很“独立”的业务逻辑:检索...

    方亮
  • 使用windbg抓取崩溃文件和分析的过程

            在软件编程中,崩溃的场景比较常见的。且说微软技术再牛X,也是会出现崩溃的场景。网上有一段Win98当着比尔盖茨...

    方亮
  • WMI技术介绍和应用——Instance/Method Provider

            在《WMI技术介绍和应用——事件通知》一文中,我们提到了提供者(Provider)这个概念。我们还是要引入WMI的结构图(转载请指明出于brea...

    方亮
  • 服务器架设笔记——打通MySQL和Apache

            在《服务器架设笔记——使用Apache插件解析简单请求》一文中,我们已经可以获取请求内容。这只是万里长征的第一步。因为一般来说,客户端向服务器发...

    方亮
  • 服务器架设笔记——编译Apache及其插件

            之前一直从事Windows上的客户端软件开发,经常会处理和服务器交互相关的业务。由于希望成为一个全栈式的工程师,我对Linux上服务器相关的开发...

    方亮
  • 跨平台PHP调试器设计及使用方法——立项

            作为一个闲不住且希望一直能挑战自己的人,我总是在琢磨能做点什么。自从今年初开始接触PHP,我也总想能在这个领域内产生点贡献。那能做点什么呢?我经...

    方亮
  • 一套使用注入和Hook技术托管入口函数的方案

            工作中,我们可能会经常使用开源项目解决一些领域中的问题。这种“拿来主义”是一种“专业人干专业事”的思想,非常实用。(转载请指明出于breakso...

    方亮

扫码关注云+社区

领取腾讯云代金券