Documentation/git-bundle.txt: mention full backup example
Provide an example about how to make a “full backup” with caveats about what that means in this case. This is a requested use-case.[1] But the doc is a bit unassuming about it: If you want to match `git clone --mirror`, which would include your refs such as `refs/remotes/*`, use `--all`. The user cannot be expected to formulate “I want a full backup” as “I want to match `git clone --mirror`” for a bundle file or something. Let’s drop this mention of `--all` later in the doc and frontload it. † 1: E.g.: • https://stackoverflow.com/questions/5578270/fully-backup-a-git-repo • https://stackoverflow.com/questions/11792671/how-to-git-bundle-a-complete-repo Helped-by: Junio C Hamano <gitster@pobox.com> Signed-off-by: Kristoffer Haugsbakk <code@khaugsbakk.name> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:

committed by
Junio C Hamano

parent
34b6ce9b30
commit
df0cf6faad
@ -23,8 +23,9 @@ the "offline" transfer of Git objects without an active "server"
|
||||
sitting on the other side of the network connection.
|
||||
|
||||
They can be used to create both incremental and full backups of a
|
||||
repository, and to relay the state of the references in one repository
|
||||
to another.
|
||||
repository (see the "full backup" example in "EXAMPLES"), and to relay
|
||||
the state of the references in one repository to another (see the second
|
||||
example).
|
||||
|
||||
Git commands that fetch or otherwise "read" via protocols such as
|
||||
`ssh://` and `https://` can also operate on bundle files. It is
|
||||
@ -34,8 +35,6 @@ contained within it with linkgit:git-ls-remote[1]. There's no
|
||||
corresponding "write" support, i.e.a 'git push' into a bundle is not
|
||||
supported.
|
||||
|
||||
See the "EXAMPLES" section below for examples of how to use bundles.
|
||||
|
||||
BUNDLE FORMAT
|
||||
-------------
|
||||
|
||||
@ -216,8 +215,34 @@ bundle.
|
||||
EXAMPLES
|
||||
--------
|
||||
|
||||
Assume you want to transfer the history from a repository R1 on machine A
|
||||
to another repository R2 on machine B.
|
||||
We'll discuss two cases:
|
||||
|
||||
1. Taking a full backup of a repository
|
||||
2. Transferring the history of a repository to another machine when the
|
||||
two machines have no direct connection
|
||||
|
||||
First let's consider a full backup of the repository. The following
|
||||
command will take a full backup of the repository in the sense that all
|
||||
refs are included in the bundle:
|
||||
|
||||
----------------
|
||||
$ git bundle create backup.bundle --all
|
||||
----------------
|
||||
|
||||
But note again that this is only for the refs, i.e. you will only
|
||||
include refs and commits reachable from those refs. You will not
|
||||
include other local state, such as the contents of the index, working
|
||||
tree, the stash, per-repository configuration, hooks, etc.
|
||||
|
||||
You can later recover that repository by using for example
|
||||
linkgit:git-clone[1]:
|
||||
|
||||
----------------
|
||||
$ git clone backup.bundle <new directory>
|
||||
----------------
|
||||
|
||||
For the next example, assume you want to transfer the history from a
|
||||
repository R1 on machine A to another repository 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 development made on the branch master in R1.
|
||||
|
Reference in New Issue
Block a user