Andreas Grünbacher <andreas.gruenbacher@xxxxxxxxx> writes: > I'm wondering if there's a way to apply a particular head in a bundle > to a source tree, for example: > > $ git bundle create v5.9-rc1.bundle v5.8..v5.9-rc1 > $ cd linux-5.8 > $ git bundle APPLY ../5.9-rc1.bundle v5.9-rc1 > > That would allow to reconstruct either the original repository or just > the underlying source tree, so the bundle could be used as a kind of > super diff. There seem to be a bit of misconception. Do not think that a bundle is like a patch. When you created the bundle in the above example, you did not create a "super diff" between v5.8 and v5.9-rc1 that you can apply to a working tree files that correspond to v5.8 release. That is not what you did. What you created is an equivalent of a (shallow) repository, that contains everything needed to get v5.9-rc1 by those who have a Git repository that has v5.8 to fetch/pull from. It is OK to have more, but you MUST have v5.8 for the bundle in the example to be usable. So assuming that your 'linux-5.8' is not just a tarball extract but a Linux repository with v5.8 tag in it (i.e. "git log v5.8" gives you sensible output) then the command to use is not apply but fetch, e.g. $ git bundle fetch ../5.9-rc1.bundle v5.9-rc1 which will give you v5.9-rc1 tag. What you can fetch from the bundle can be listed by using the list-heads subcommand on the bundle. And starting from that point, you would be able to do things like $ git checkout -b my-fork-of-5.9-rc1 v5.9-rc1 Now, assuming that your original question indeed came from thinking of a bundle like a patch and not like a repository, we have a question for you. What in $ git bundle --help gave such an incorrect impression? The documentation must be at fault here, and we need to clarify so that future readers of it will not be confused into the same misconception. Thanks.