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