git-bundle(1)
=============

NAME
----
git-bundle - Move objects and refs by archive


SYNOPSIS
--------
[verse]
'git-bundle' create <file> <git-rev-list args>
'git-bundle' verify <file>
'git-bundle' list-heads <file> [refname...]
'git-bundle' unbundle <file> [refname...]

DESCRIPTION
-----------

Some workflows require that one or more branches of development on one
machine be replicated on another machine, but the two machines cannot
be directly connected so the interactive git protocols (git, ssh,
rsync, http) cannot be used.  This command provides support for
git-fetch and git-pull to operate by packaging objects and references
in an archive at the originating machine, then importing those into
another repository using linkgit:git-fetch[1] and linkgit:git-pull[1]
after moving the archive by some means (i.e., by sneakernet).  As no
direct connection between repositories exists, the user must specify a
basis for the bundle that is held by the destination repository: the
bundle assumes that all objects in the basis are already in the
destination repository.

OPTIONS
-------

create <file>::
       Used to create a bundle named 'file'.  This requires the
       git-rev-list arguments to define the bundle contents.

verify <file>::
       Used to check that a bundle file is valid and will apply
       cleanly to the current repository.  This includes checks on the
       bundle format itself as well as checking that the prerequisite
       commits exist and are fully linked in the current repository.
       git-bundle prints a list of missing commits, if any, and exits
       with non-zero status.

list-heads <file>::
       Lists the references defined in the bundle.  If followed by a
       list of references, only references matching those given are
       printed out.

unbundle <file>::
       Passes the objects in the bundle to linkgit:git-index-pack[1]
       for storage in the repository, then prints the names of all
       defined references. If a reflist is given, only references
       matching those in the given list are printed. This command is
       really plumbing, intended to be called only by
       linkgit:git-fetch[1].

[git-rev-list-args...]::
       A list of arguments, acceptable to git-rev-parse and
       git-rev-list, that specify the specific objects and references
       to transport.  For example, "master~10..master" causes the
       current master reference to be packaged along with all objects
       added since its 10th ancestor commit.  There is no explicit
       limit to the number of references and objects that may be
       packaged.


[refname...]::
       A list of references used to limit the references reported as
       available. This is principally of use to git-fetch, which
       expects to receive only those references asked for and not
       necessarily everything in the pack (in this case, git-bundle is
       acting like linkgit:git-fetch-pack[1]).

SPECIFYING REFERENCES
---------------------

git-bundle will only package references that are shown by
git-show-ref: this includes heads, tags, and remote heads.  References
such as master~1 cannot be packaged, but are perfectly suitable for
defining the basis.  More than one reference may be packaged, and more
than one basis can be specified.  The objects packaged are those not
contained in the union of the given bases.  Each basis can be
specified explicitly (e.g., ^master~10), or implicitly (e.g.,
master~10..master, master --since=10.days.ago).

It is very important that the basis used be held by the destination.
It is okay to err on the side of conservatism, causing the bundle file
to contain objects already in the destination as these are ignored
when unpacking at the destination.

EXAMPLE
-------

Assume two repositories exist as R1 on machine A, and R2 on machine B.
For whatever reason, direct connection between A and B is not allowed,
but we can move data from A to B via some mechanism (CD, email, etc).
We want to update R2 with developments made on branch master in R1.

To create the bundle you have to specify the basis. You have some options:

- Without basis.
+
This is useful when sending the whole history.

------------
$ git bundle create mybundle master
------------

- Using temporally tags.
+
We set a tag in R1 (lastR2bundle) after the previous such transport,
and move it afterwards to help build the bundle.

------------
$ git-bundle create mybundle master ^lastR2bundle
$ git tag -f lastR2bundle master
------------

- Using a tag present in both repositories

------------
$ git bundle create mybundle master ^v1.0.0
------------

- A basis based on time.

------------
$ git bundle create mybundle master --since=10.days.ago
------------

- With a limit on the number of commits

------------
$ git bundle create mybundle master -n 10
------------

Then you move mybundle from A to B, and in R2 on B:

------------
$ git-bundle verify mybundle
$ git-fetch mybundle master:localRef
------------

With something like this in the config in R2:

------------------------
[remote "bundle"]
    url = /home/me/tmp/file.bdl
    fetch = refs/heads/*:refs/remotes/origin/*
------------------------

You can first sneakernet the bundle file to ~/tmp/file.bdl and
then these commands on machine B:

------------
$ git ls-remote bundle
$ git fetch bundle
$ git pull bundle
------------

would treat it as if it is talking with a remote side over the
network.

Author
------
Written by Mark Levedahl <mdl123@verizon.net>

GIT
---
Part of the linkgit:git[7] suite
