:: 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/ 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: ... Pull: ... When such a short-hand is specified in place of without parameters on the command line, ... 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/ file that stores a without the fragment is equivalent to have this in the corresponding file in the $GIT_DIR/remotes/ directory URL: Pull: refs/heads/master: while having # is equivalent to URL: Pull: refs/heads/: :: The canonical format of a parameter is '+?:'; 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 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 is used to fast forward the remote ref that matches . 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 is fetched, and if is not empty string, the local ref that matches it is fast forwarded using . 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 to mean a refspec "refs/tags/:refs/tags/". * A parameter without a colon is equivalent to : when pulling/fetching, and : when pushing. That is, do not store it locally if fetching, and update the same name if pushing.