From: "Matthieu Moy" <>
Sent: Monday, June 17, 2013 6:20 PM
"Philip Oakley" <> writes:

+       Note that `--force` applies to all the refs that are pushed,
+       hence using `git push --all --force`, or `git push --force`
+ with `push.default` set to `matching` may override refs other
+       than the current branch (including local refs that are
+ strictly behind their remote counterpart). To force a push to + only one branch, use `git push <remote> +<branch>` instead of
+       `--force`.

It would be useful to include a real example "e.g. `git push origin
+master`", or a link to specifying a refspec "see <refspec>... above", such that the "+" doesn't get lost in the general text, as push is one
of the first few commands a new user is likely to be looking up (and
misunderstanding ;-), so let's make the + obvious

Yes, why not. I'll point to the <refspec> section for detail, and just
give an example here.

I did notice that the <refspec>... section doesn't actually associate
the "+" with the force action - Am I misunderstanding this?

It says:

 By having the optional leading `+`, you can tell Git to update the
 <dst> ref even if it is not allowed by default (e.g., it is not a

I think it's OK.

I was more noting that there is zero direct association in the text between the --force option, and the "+", and with that, a funny feeling that either (a) they had subtle differences I hadn't understood, or (b) they were exactly the same and the documenation was being too subtle and a cluebat should be applied to the documenation (on the principle I am not a unique fool ;-)

Matthieu Moy

------- 8< -------
From 57d8aaac6b7543919aaf09909c13a180722c0a94 Mon Sep 17 00:00:00 2001
From: Philip Oakley <>
Date: Mon, 17 Jun 2013 18:47:04 +0100
Subject: [PATCH] git-push doc: +<dst> refspec is --force

Signed-off-by: Philip Oakley <>
Documentation/git-push.txt | 2 ++
1 file changed, 2 insertions(+)

diff --git a/Documentation/git-push.txt b/Documentation/git-push.txt
index eb2883c..df92b09 100644
--- a/Documentation/git-push.txt
+++ b/Documentation/git-push.txt
@@ -136,6 +136,8 @@ already exists on the remote side.
 not an ancestor of the local ref used to overwrite it.
 This flag disables the check.  This can cause the
 remote repository to lose commits; use it with care.
+ See also the optional leading `+` <dst> ref specifier in
+ '<refspec>...' above.

 This option is only relevant if no <repository> argument is

To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to
More majordomo info at

Reply via email to