logo

oasis-root

Compiled tree of Oasis Linux based on own branch at <https://hacktivis.me/git/oasis/> git clone https://anongit.hacktivis.me/git/oasis-root.git

git-send-pack.1 (7217B)


  1. '\" t
  2. .\" Title: git-send-pack
  3. .\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
  4. .\" Generator: DocBook XSL Stylesheets v1.79.2 <http://docbook.sf.net/>
  5. .\" Date: 2025-03-14
  6. .\" Manual: Git Manual
  7. .\" Source: Git 2.49.0
  8. .\" Language: English
  9. .\"
  10. .TH "GIT\-SEND\-PACK" "1" "2025-03-14" "Git 2\&.49\&.0" "Git Manual"
  11. .\" -----------------------------------------------------------------
  12. .\" * Define some portability stuff
  13. .\" -----------------------------------------------------------------
  14. .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  15. .\" http://bugs.debian.org/507673
  16. .\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
  17. .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  18. .ie \n(.g .ds Aq \(aq
  19. .el .ds Aq '
  20. .\" -----------------------------------------------------------------
  21. .\" * set default formatting
  22. .\" -----------------------------------------------------------------
  23. .\" disable hyphenation
  24. .nh
  25. .\" disable justification (adjust text to left margin only)
  26. .ad l
  27. .\" -----------------------------------------------------------------
  28. .\" * MAIN CONTENT STARTS HERE *
  29. .\" -----------------------------------------------------------------
  30. .SH "NAME"
  31. git-send-pack \- Push objects over Git protocol to another repository
  32. .SH "SYNOPSIS"
  33. .sp
  34. .nf
  35. \fIgit send\-pack\fR [\-\-mirror] [\-\-dry\-run] [\-\-force]
  36. [\-\-receive\-pack=<git\-receive\-pack>]
  37. [\-\-verbose] [\-\-thin] [\-\-atomic]
  38. [\-\-[no\-]signed | \-\-signed=(true|false|if\-asked)]
  39. [<host>:]<directory> (\-\-all | <ref>\&...\:)
  40. .fi
  41. .SH "DESCRIPTION"
  42. .sp
  43. Usually you would want to use \fIgit push\fR, which is a higher\-level wrapper of this command, instead\&. See \fBgit-push\fR(1)\&.
  44. .sp
  45. Invokes \fIgit\-receive\-pack\fR on a possibly remote repository, and updates it from the current repository, sending named refs\&.
  46. .SH "OPTIONS"
  47. .PP
  48. \-\-receive\-pack=<git\-receive\-pack>
  49. .RS 4
  50. Path to the
  51. \fIgit\-receive\-pack\fR
  52. 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\&.
  53. .RE
  54. .PP
  55. \-\-exec=<git\-receive\-pack>
  56. .RS 4
  57. Same as \-\-receive\-pack=<git\-receive\-pack>\&.
  58. .RE
  59. .PP
  60. \-\-all
  61. .RS 4
  62. Instead of explicitly specifying which refs to update, update all heads that locally exist\&.
  63. .RE
  64. .PP
  65. \-\-stdin
  66. .RS 4
  67. Take the list of refs from stdin, one per line\&. If there are refs specified on the command line in addition to this option, then the refs from stdin are processed after those on the command line\&.
  68. .sp
  69. If
  70. \fB\-\-stateless\-rpc\fR
  71. is specified together with this option then the list of refs must be in packet format (pkt\-line)\&. Each ref must be in a separate packet, and the list must end with a flush packet\&.
  72. .RE
  73. .PP
  74. \-\-dry\-run
  75. .RS 4
  76. Do everything except actually send the updates\&.
  77. .RE
  78. .PP
  79. \-\-force
  80. .RS 4
  81. Usually, the command refuses to update a remote ref that is not an ancestor of the local ref used to overwrite it\&. This flag disables the check\&. This means that the remote repository can lose commits; use it with care\&.
  82. .RE
  83. .PP
  84. \-\-verbose
  85. .RS 4
  86. Run verbosely\&.
  87. .RE
  88. .PP
  89. \-\-thin
  90. .RS 4
  91. Send a "thin" pack, which records objects in deltified form based on objects not included in the pack to reduce network traffic\&.
  92. .RE
  93. .PP
  94. \-\-atomic
  95. .RS 4
  96. Use an atomic transaction for updating the refs\&. If any of the refs fails to update then the entire push will fail without changing any refs\&.
  97. .RE
  98. .PP
  99. \-\-[no\-]signed, \-\-signed=(true|false|if\-asked)
  100. .RS 4
  101. GPG\-sign the push request to update refs on the receiving side, to allow it to be checked by the hooks and/or be logged\&. If
  102. \fBfalse\fR
  103. or
  104. \fB\-\-no\-signed\fR, no signing will be attempted\&. If
  105. \fBtrue\fR
  106. or
  107. \fB\-\-signed\fR, the push will fail if the server does not support signed pushes\&. If set to
  108. \fBif\-asked\fR, sign if and only if the server supports signed pushes\&. The push will also fail if the actual call to
  109. \fBgpg\fR
  110. \fB\-\-sign\fR
  111. fails\&. See
  112. \fBgit-receive-pack\fR(1)
  113. for the details on the receiving end\&.
  114. .RE
  115. .PP
  116. \-\-push\-option=<string>
  117. .RS 4
  118. Pass the specified string as a push option for consumption by hooks on the server side\&. If the server doesn\(cqt support push options, error out\&. See
  119. \fBgit-push\fR(1)
  120. and
  121. \fBgithooks\fR(5)
  122. for details\&.
  123. .RE
  124. .PP
  125. <host>
  126. .RS 4
  127. A remote host to house the repository\&. When this part is specified,
  128. \fIgit\-receive\-pack\fR
  129. is invoked via ssh\&.
  130. .RE
  131. .PP
  132. <directory>
  133. .RS 4
  134. The repository to update\&.
  135. .RE
  136. .PP
  137. <ref>\&...\:
  138. .RS 4
  139. The remote refs to update\&.
  140. .RE
  141. .SH "SPECIFYING THE REFS"
  142. .sp
  143. There are three ways to specify which refs to update on the remote end\&.
  144. .sp
  145. With the \fB\-\-all\fR flag, all refs that exist locally are transferred to the remote side\&. You cannot specify any \fI<ref>\fR if you use this flag\&.
  146. .sp
  147. Without \fB\-\-all\fR and without any \fI<ref>\fR, the heads that exist both on the local side and on the remote side are updated\&.
  148. .sp
  149. When one or more \fI<ref>\fR are specified explicitly (whether on the command line or via \fB\-\-stdin\fR), it can be either a single pattern, or a pair of such patterns separated by a colon ":" (this means that a ref name cannot have a colon in it)\&. A single pattern \fI<name>\fR is just shorthand for \fI<name>:<name>\fR\&.
  150. .sp
  151. Each pattern pair consists of the source side (before the colon) and the destination side (after the colon)\&. The ref to be pushed is determined by finding a match that matches the source side, and where it is pushed is determined by using the destination side\&. The rules used to match a ref are the same rules used by \fIgit rev\-parse\fR to resolve a symbolic ref name\&. See \fBgit-rev-parse\fR(1)\&.
  152. .sp
  153. .RS 4
  154. .ie n \{\
  155. \h'-04'\(bu\h'+03'\c
  156. .\}
  157. .el \{\
  158. .sp -1
  159. .IP \(bu 2.3
  160. .\}
  161. It is an error if <src> does not match exactly one of the local refs\&.
  162. .RE
  163. .sp
  164. .RS 4
  165. .ie n \{\
  166. \h'-04'\(bu\h'+03'\c
  167. .\}
  168. .el \{\
  169. .sp -1
  170. .IP \(bu 2.3
  171. .\}
  172. It is an error if <dst> matches more than one remote ref\&.
  173. .RE
  174. .sp
  175. .RS 4
  176. .ie n \{\
  177. \h'-04'\(bu\h'+03'\c
  178. .\}
  179. .el \{\
  180. .sp -1
  181. .IP \(bu 2.3
  182. .\}
  183. If <dst> does not match any remote ref, either
  184. .sp
  185. .RS 4
  186. .ie n \{\
  187. \h'-04'\(bu\h'+03'\c
  188. .\}
  189. .el \{\
  190. .sp -1
  191. .IP \(bu 2.3
  192. .\}
  193. it has to start with "refs/"; <dst> is used as the destination literally in this case\&.
  194. .RE
  195. .sp
  196. .RS 4
  197. .ie n \{\
  198. \h'-04'\(bu\h'+03'\c
  199. .\}
  200. .el \{\
  201. .sp -1
  202. .IP \(bu 2.3
  203. .\}
  204. <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\&.
  205. .RE
  206. .RE
  207. .sp
  208. Without \fB\-\-force\fR, the <src> ref is stored at the remote only if <dst> does not exist, or <dst> is a proper subset (i\&.e\&. an ancestor) of <src>\&. This check, known as the "fast\-forward check", is performed to avoid accidentally overwriting the remote ref and losing other people\(cqs commits from there\&.
  209. .sp
  210. With \fB\-\-force\fR, the fast\-forward check is disabled for all refs\&.
  211. .sp
  212. Optionally, a <ref> parameter can be prefixed with a plus \fI+\fR sign to disable the fast\-forward check only on that ref\&.
  213. .SH "GIT"
  214. .sp
  215. Part of the \fBgit\fR(1) suite