| <repository>:: |
| The "remote" repository to pull from. One of the |
| following notations can be used to name the repository |
| to pull from: |
| + |
| =============================================================== |
| - Rsync URL: rsync://remote.machine/path/to/repo.git/ |
| - HTTP(s) URL: http://remote.machine/path/to/repo.git/ |
| - GIT URL: git://remote.machine/path/to/repo.git/ |
| or remote.machine:/path/to/repo.git/ |
| - Local directory: /path/to/repo.git/ |
| =============================================================== |
| + |
| In addition to the above, as a short-hand, the name of a |
| file in $GIT_DIR/remotes directory can be given; the |
| named file should be in the following format: |
| + |
| URL: one of the above URL format |
| Push: <refspec>... |
| Pull: <refspec>... |
| + |
| When such a short-hand is specified in place of |
| <repository> without <refspec> parameters on the command |
| line, <refspec>... specified on Push lines or Pull lines |
| are used for "git push" and "git fetch/pull", |
| respectively. |
| + |
| The name of a file in $GIT_DIR/branches directory can be |
| specified as an older notation short-hand; the named |
| file should contain a single line, a URL in one of the |
| above formats, optionally followed by a hash '#' and the |
| name of remote head (URL fragment notation). |
| $GIT_DIR/branches/<remote> file that stores a <url> |
| without the fragment is equivalent to have this in the |
| corresponding file in the $GIT_DIR/remotes/ directory |
| + |
| URL: <url> |
| Pull: refs/heads/master:<remote> |
| + |
| while having <url>#<head> is equivalent to |
| + |
| URL: <url> |
| Pull: refs/heads/<head>:<remote> |
| |
| <refspec>:: |
| The canonical format of a <refspec> parameter is |
| '+?<src>:<dst>'; that is, an optional plus '+', followed |
| by the source ref, followed by a colon ':', followed by |
| the destination ref. |
| + |
| When used in "git push", 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). |
| + |
| For "git push", 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 |
| even if it does not result in a fast forward update. |
| + |
| For "git fetch/pull", the remote ref that matches <src> |
| is fetched, and if <dst> is not empty string, the local |
| ref that matches it is fast forwarded using <src>. |
| Again, if the optional plus '+' is used, the local ref |
| is updated even if it does not result in a fast forward |
| update. |
| + |
| Some short-cut notations are also supported. |
| + |
| * For backward compatibility, "tag" is almost ignored; |
| it just makes the following parameter <tag> to mean a |
| refspec "refs/tags/<tag>:refs/tags/<tag>". |
| * A parameter <ref> without a colon is equivalent to |
| <ref>: when pulling/fetching, and <ref>:<ref> when |
| pushing. That is, do not store it locally if |
| fetching, and update the same name if pushing. |
| |
| -a, \--append:: |
| Append ref names and object names of fetched refs to the |
| existing contents of $GIT_DIR/FETCH_HEAD. Without this |
| option old data in $GIT_DIR/FETCH_HEAD will be overwritten. |
| |
| -f, \--force:: |
| Usually, the command refuses to update a local ref that is |
| not an ancestor of the remote ref used to overwrite it. |
| This flag disables the check. What this means is that the |
| local repository can lose commits; use it with care. |