diff --git a/Documentation/git-push.txt b/Documentation/git-push.txt index a0ef61dafa..7e9452efe1 100644 --- a/Documentation/git-push.txt +++ b/Documentation/git-push.txt @@ -23,7 +23,32 @@ documentation for gitlink:git-receive-pack[1]. OPTIONS ------- -include::pull-fetch-param.txt[] +:: + The "remote" repository that is destination of a push operation. +include::urls.txt[] + +:: + 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. ++ +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). ++ +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. ++ +Some short-cut notations are also supported. ++ +* `tag ` means the same as `refs/tags/:refs/tags/`. +* A parameter without a colon is equivalent to + `:`, hence updates in the destination from + in the source. \--all:: Instead of naming each ref to push, specifies all refs diff --git a/Documentation/pull-fetch-param.txt b/Documentation/pull-fetch-param.txt index 4524fee6f2..9011ffbea3 100644 --- a/Documentation/pull-fetch-param.txt +++ b/Documentation/pull-fetch-param.txt @@ -1,68 +1,7 @@ :: The "remote" repository that is the source of a fetch - or pull operation, or the destination of a push operation. - One of the following notations can be used - to name the remote repository: -+ -=============================================================== -- rsync://host.xz/path/to/repo.git/ -- http://host.xz/path/to/repo.git/ -- https://host.xz/path/to/repo.git/ -- git://host.xz/path/to/repo.git/ -- git://host.xz/~user/path/to/repo.git/ -- ssh://host.xz/path/to/repo.git/ -- ssh://host.xz/~user/path/to/repo.git/ -- ssh://host.xz/~/path/to/repo.git -=============================================================== -+ -SSH Is the default transport protocol and also supports an -scp-like syntax. Both syntaxes support username expansion, -as does the native git protocol. The following three are -identical to the last three above, respectively: -+ -=============================================================== -- host.xz:/path/to/repo.git/ -- host.xz:~user/path/to/repo.git/ -- host.xz:path/to/repo.git -=============================================================== -+ -To sync with a local directory, use: -+ -=============================================================== -- /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`/`git-pull`, -respectively. Multiple `Push:` and and `Pull:` lines may -be specified for additional branch mappings. -+ -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/: + or pull operation. +include::urls.txt[] :: The canonical format of a parameter is @@ -70,17 +9,7 @@ while having `#` is equivalent to 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` and `git-pull`, the remote ref that matches +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 @@ -135,10 +64,7 @@ is often useful. Some short-cut notations are also supported. + * `tag ` means the same as `refs/tags/:refs/tags/`; - used with pull or fetch, it requests fetching everything up to - the given tag. + it requests fetching everything up to the given tag. * 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. - + : when pulling/fetching, so it merges into the current + branch without storing the remote branch anywhere locally diff --git a/Documentation/urls.txt b/Documentation/urls.txt new file mode 100644 index 0000000000..e027c71e07 --- /dev/null +++ b/Documentation/urls.txt @@ -0,0 +1,62 @@ +One of the following notations can be used +to name the remote repository: ++ +=============================================================== +- rsync://host.xz/path/to/repo.git/ +- http://host.xz/path/to/repo.git/ +- https://host.xz/path/to/repo.git/ +- git://host.xz/path/to/repo.git/ +- git://host.xz/~user/path/to/repo.git/ +- ssh://host.xz/path/to/repo.git/ +- ssh://host.xz/~user/path/to/repo.git/ +- ssh://host.xz/~/path/to/repo.git +=============================================================== ++ +SSH Is the default transport protocol and also supports an +scp-like syntax. Both syntaxes support username expansion, +as does the native git protocol. The following three are +identical to the last three above, respectively: ++ +=============================================================== +- host.xz:/path/to/repo.git/ +- host.xz:~user/path/to/repo.git/ +- host.xz:path/to/repo.git +=============================================================== ++ +To sync with a local directory, use: ++ +=============================================================== +- /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`/`git-pull`, +respectively. Multiple `Push:` and and `Pull:` lines may +be specified for additional branch mappings. ++ +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/: