Merge with gitk.
[git.git] / Documentation / git-send-pack.txt
1 git-send-pack(1)
2 ================
3 v0.1, July 2005
4
5 NAME
6 ----
7 git-send-pack - Push missing objects packed.
8
9
10 SYNOPSIS
11 --------
12 'git-send-pack' [--all] [--exec=<git-receive-pack>] [<host>:]<directory> [<head>...]
13
14 DESCRIPTION
15 -----------
16 Invokes 'git-receive-pack' on a possibly remote repository, and
17 updates it from the current repository, sending named heads.
18
19
20 OPTIONS
21 -------
22 --exec=<git-receive-pack>::
23         Path to the 'git-receive-pack' program on the remote
24         end.  Sometimes useful when pushing to a remote
25         repository over ssh, and you do not have the program in
26         a directory on the default $PATH.
27
28 --all::
29         Instead of explicitly specifying which refs to update,
30         update all refs that locally exist.
31
32 <host>::
33         A remote host to house the repository.  When this
34         part is specified, 'git-receive-pack' is invoked via
35         ssh.
36
37 <directory>::
38         The repository to update.
39
40 <head>...:
41         The remote refs to update.
42
43
44 Specifying the Refs
45 -------------------
46
47 There are three ways to specify which refs to update on the
48 remote end.
49
50 With '--all' flag, all refs that exist locally are transfered to
51 the remote side.  You cannot specify any '<head>' if you use
52 this flag.
53
54 Without '--all' and without any '<head>', the refs that exist
55 both on the local side and on the remote side are updated.
56
57 When '<head>'s are specified explicitly, it can be either a
58 single pattern, or a pair of such pattern separated by a colon
59 ':' (this means that a ref name cannot have a colon in it).  A
60 single pattern '<name>' is just a shorthand for '<name>:<name>'.
61 Each pattern pair consists of the source side (before the colon)
62 and the destination side (after the colon).  The ref that is
63 pushed is determined by finding a match that matches the source
64 side, and where it is pushed is determined by using the
65 destination side.
66
67  - It is an error if <src> does not match exactly one of local
68    refs.
69
70  - It is an error if <dst> matches more than one remote refs.
71
72  - If <dst> does not match any remote ref, either
73
74    - it has to start with "refs/"; <dst> is used as the
75      destination literally in this case.
76
77    - <src> == <dst> and the ref that matched the <src> must not
78      exist in the set of remote refs; the ref matched <src>
79      locally is used as the name of the destination.
80
81
82 Author
83 ------
84 Written by Linus Torvalds <torvalds@osdl.org>
85
86 Documentation
87 --------------
88 Documentation by Junio C Hamano.
89
90 GIT
91 ---
92 Part of the link:git.html[git] suite