Jeff King  committed 066a526

push: document the status output

The output was meant to be a balance of self-explanatory and
terse. In case we have erred too far on the terse side, it
doesn't hurt to explain in more detail what each line means.

Signed-off-by: Jeff King <>
Signed-off-by: Junio C Hamano <>

  • Participants
  • Parent commits 68d06c5

Comments (0)

Files changed (1)

File Documentation/git-push.txt

+The output of "git push" depends on the transport method used; this
+section describes the output when pushing over the git protocol (either
+locally or via ssh).
+The status of the push is output in tabular form, with each line
+representing the status of a single ref. Each line is of the form:
+ <flag> <summary> <from> -> <to> (<reason>)
+	A single character indicating the status of the ref. This is
+	blank for a successfully pushed ref, `!` for a ref that was
+	rejected or failed to push, and '=' for a ref that was up to
+	date and did not need pushing (note that the status of up to
+	date refs is shown only when `git push` is running verbosely).
+	For a successfully pushed ref, the summary shows the old and new
+	values of the ref in a form suitable for using as an argument to
+	`git log` (this is `<old>..<new>` in most cases, and
+	`<old>...<new>` for forced non-fast forward updates). For a
+	failed update, more details are given for the failure.
+	The string `rejected` indicates that git did not try to send the
+	ref at all (typically because it is not a fast forward). The
+	string `remote rejected` indicates that the remote end refused
+	the update; this rejection is typically caused by a hook on the
+	remote side. The string `remote failure` indicates that the
+	remote end did not report the successful update of the ref
+	(perhaps because of a temporary error on the remote side, a
+	break in the network connection, or other transient error).
+	The name of the local ref being pushed, minus its
+	`refs/<type>/` prefix. In the case of deletion, the
+	name of the local ref is omitted.
+	The name of the remote ref being updated, minus its
+	`refs/<type>/` prefix.
+	A human-readable explanation. In the case of successfully pushed
+	refs, no explanation is needed. For a failed ref, the reason for
+	failure is described.