summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSam Vilain <sam.vilain@catalyst.net.nz>2008-04-21 15:31:24 +1200
committerJunio C Hamano <gitster@pobox.com>2008-04-22 23:01:48 -0700
commit491b1b11213c373a3e91004b1ab775d7e52ac1f3 (patch)
tree24a119cc8f1403732d31fcbc45f5f3bedbffb990
parent208641cf850125a23ccca99630ea2caa70953e44 (diff)
downloadgit-491b1b11213c373a3e91004b1ab775d7e52ac1f3.tar.gz
Amend git-push refspec documentation
These paragraphs are a little confusing. Also, make it clearer when you have to specify the full name for <dst> Signed-off-by: Sam Vilain <sam.vilain@catalyst.net.nz> Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r--Documentation/git-push.txt23
1 files changed, 13 insertions, 10 deletions
diff --git a/Documentation/git-push.txt b/Documentation/git-push.txt
index 3128170bcd..0585949137 100644
--- a/Documentation/git-push.txt
+++ b/Documentation/git-push.txt
@@ -35,14 +35,15 @@ OPTIONS
by the source ref, followed by a colon `:`, followed by
the destination ref.
+
-The <src> side can be an
-arbitrary "SHA1 expression" that can be used as an
-argument to `git-cat-file -t`. E.g. `master~4` (push
-four parents before the current master head).
+The <src> side represents the source branch (or arbitrary
+"SHA1 expression", such as `master~4` (four parents before the
+tip of `master` branch); see linkgit:git-rev-parse[1]) that you
+want to push. The <dst> side represents the destination location.
+
The local ref that matches <src> is used
-to fast forward the remote ref that matches <dst>. If
-the optional plus `+` is used, the remote ref is updated
+to fast forward the remote ref that matches <dst> (or, if no <dst> was
+specified, the same ref that <src> referred to locally). If
+the optional leading plus `+` is used, the remote ref is updated
even if it does not result in a fast forward update.
+
Note: If no explicit refspec is found, (that is neither
@@ -165,7 +166,8 @@ git push origin master::
Find a ref that matches `master` in the source repository
(most likely, it would find `refs/heads/master`), and update
the same ref (e.g. `refs/heads/master`) in `origin` repository
- with it.
+ with it. If `master` did not exist remotely, it would be
+ created.
git push origin :experimental::
Find a ref that matches `experimental` in the `origin` repository
@@ -179,9 +181,10 @@ git push origin master:satellite/master::
git push origin master:refs/heads/experimental::
Create the branch `experimental` in the `origin` repository
- by copying the current `master` branch. This form is usually
- needed to create a new branch in the remote repository as
- there is no `experimental` branch to match.
+ by copying the current `master` branch. This form is only
+ needed to create a new branch or tag in the remote repository when
+ the local name and the remote name are different; otherwise,
+ the ref name on its own will work.
Author
------