]>
Commit | Line | Data |
---|---|---|
2a245013 JH |
1 | git-send-pack(1) |
2 | ================ | |
2a245013 JH |
3 | |
4 | NAME | |
5 | ---- | |
3dff5379 | 6 | git-send-pack - Push objects over git protocol to another repository |
2a245013 JH |
7 | |
8 | ||
9 | SYNOPSIS | |
10 | -------- | |
d23842fd | 11 | 'git-send-pack' [--all] [--force] [--receive-pack=<git-receive-pack>] [--verbose] [--thin] [<host>:]<directory> [<ref>...] |
2a245013 JH |
12 | |
13 | DESCRIPTION | |
14 | ----------- | |
5cb545fa JH |
15 | Usually you would want to use gitlink:git-push[1] which is a |
16 | higher level wrapper of this command instead. | |
17 | ||
2a245013 | 18 | Invokes 'git-receive-pack' on a possibly remote repository, and |
ab9b3138 | 19 | updates it from the current repository, sending named refs. |
2a245013 JH |
20 | |
21 | ||
22 | OPTIONS | |
23 | ------- | |
d23842fd | 24 | \--receive-pack=<git-receive-pack>:: |
2a245013 JH |
25 | Path to the 'git-receive-pack' program on the remote |
26 | end. Sometimes useful when pushing to a remote | |
27 | repository over ssh, and you do not have the program in | |
28 | a directory on the default $PATH. | |
29 | ||
d23842fd UKK |
30 | \--exec=<git-receive-pack>:: |
31 | Same as \--receive-pack=<git-receive-pack>. | |
32 | ||
18bd8821 | 33 | \--all:: |
9553d20b JH |
34 | Instead of explicitly specifying which refs to update, |
35 | update all refs that locally exist. | |
36 | ||
18bd8821 | 37 | \--force:: |
ab9b3138 JH |
38 | Usually, the command refuses to update a remote ref that |
39 | is not an ancestor of the local ref used to overwrite it. | |
40 | This flag disables the check. What this means is that | |
41 | the remote repository can lose commits; use it with | |
42 | care. | |
43 | ||
18bd8821 UKK |
44 | \--verbose:: |
45 | Run verbosely. | |
46 | ||
47 | \--thin:: | |
48 | Spend extra cycles to minimize the number of objects to be sent. | |
49 | Use it on slower connection. | |
50 | ||
2a245013 JH |
51 | <host>:: |
52 | A remote host to house the repository. When this | |
53 | part is specified, 'git-receive-pack' is invoked via | |
54 | ssh. | |
55 | ||
56 | <directory>:: | |
57 | The repository to update. | |
58 | ||
23bed43d | 59 | <ref>...:: |
9553d20b JH |
60 | The remote refs to update. |
61 | ||
62 | ||
63 | Specifying the Refs | |
64 | ------------------- | |
65 | ||
66 | There are three ways to specify which refs to update on the | |
67 | remote end. | |
68 | ||
abda1ef5 | 69 | With '--all' flag, all refs that exist locally are transferred to |
ab9b3138 | 70 | the remote side. You cannot specify any '<ref>' if you use |
9553d20b JH |
71 | this flag. |
72 | ||
ab9b3138 | 73 | Without '--all' and without any '<ref>', the refs that exist |
9553d20b JH |
74 | both on the local side and on the remote side are updated. |
75 | ||
df8baa42 | 76 | When one or more '<ref>' are specified explicitly, it can be either a |
9553d20b | 77 | single pattern, or a pair of such pattern separated by a colon |
df8baa42 | 78 | ":" (this means that a ref name cannot have a colon in it). A |
9553d20b | 79 | single pattern '<name>' is just a shorthand for '<name>:<name>'. |
ab9b3138 | 80 | |
9553d20b | 81 | Each pattern pair consists of the source side (before the colon) |
ab9b3138 | 82 | and the destination side (after the colon). The ref to be |
9553d20b JH |
83 | pushed is determined by finding a match that matches the source |
84 | side, and where it is pushed is determined by using the | |
85 | destination side. | |
86 | ||
ab9b3138 JH |
87 | - It is an error if <src> does not match exactly one of the |
88 | local refs. | |
9553d20b JH |
89 | |
90 | - It is an error if <dst> matches more than one remote refs. | |
91 | ||
92 | - If <dst> does not match any remote ref, either | |
93 | ||
df8baa42 | 94 | * it has to start with "refs/"; <dst> is used as the |
9553d20b JH |
95 | destination literally in this case. |
96 | ||
df8baa42 | 97 | * <src> == <dst> and the ref that matched the <src> must not |
9553d20b JH |
98 | exist in the set of remote refs; the ref matched <src> |
99 | locally is used as the name of the destination. | |
100 | ||
ab9b3138 JH |
101 | Without '--force', the <src> ref is stored at the remote only if |
102 | <dst> does not exist, or <dst> is a proper subset (i.e. an | |
103 | ancestor) of <src>. This check, known as "fast forward check", | |
104 | is performed in order to avoid accidentally overwriting the | |
105 | remote ref and lose other peoples' commits from there. | |
106 | ||
107 | With '--force', the fast forward check is disabled for all refs. | |
108 | ||
109 | Optionally, a <ref> parameter can be prefixed with a plus '+' sign | |
110 | to disable the fast-forward check only on that ref. | |
111 | ||
9553d20b | 112 | |
2a245013 JH |
113 | Author |
114 | ------ | |
115 | Written by Linus Torvalds <torvalds@osdl.org> | |
116 | ||
117 | Documentation | |
118 | -------------- | |
119 | Documentation by Junio C Hamano. | |
120 | ||
121 | GIT | |
122 | --- | |
a7154e91 | 123 | Part of the gitlink:git[7] suite |