X-Git-Url: https://git.verplant.org/?a=blobdiff_plain;f=Documentation%2Fpull-fetch-param.txt;h=6413d525ce1d7fa046f81b1d31c6e8ca3b2dbecb;hb=2c4ed386e8861e730037abe4f4d9e032c5c46242;hp=2a7131874be370579f2f1ef4a72074b5d8b86141;hpb=bccf5956c323a043e9a5d540b3c842ae6e5e5220;p=git.git diff --git a/Documentation/pull-fetch-param.txt b/Documentation/pull-fetch-param.txt index 2a713187..6413d525 100644 --- a/Documentation/pull-fetch-param.txt +++ b/Documentation/pull-fetch-param.txt @@ -5,11 +5,31 @@ to name the remote repository: + =============================================================== -- 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/ +- 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 @@ -17,12 +37,12 @@ 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: ... + Push: + Pull: + When such a short-hand is specified in place of without parameters on the command -line, ... specified on `Push:` lines or `Pull:` +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. @@ -82,14 +102,35 @@ must know this is the expected usage pattern for a branch. [NOTE] You never do your own development on branches that appear on the right hand side of a colon on `Pull:` lines; -they are to be updated by `git-fetch`. The corollary is that -a local branch should be introduced and named on a -right-hand-side if you intend to do development derived from -that branch. -This leads to the common `Pull: master:origin` mapping of a -remote `master` branch to a local `origin` branch, which -is then merged to a local development branch, again typically -named `master`. +they are to be updated by `git-fetch`. If you intend to do +development derived from a remote branch `B`, have a `Pull:` +line to track it (i.e. `Pull: B:remote-B`), and have a separate +branch `my-B` to do your development on top of it. The latter +is created by `git branch my-B remote-B` (or its equivalent `git +checkout -b my-B remote-B`). Run `git fetch` to keep track of +the progress of the remote side, and when you see something new +on the remote branch, merge it into your development branch with +`git pull . remote-B`, while you are on `my-B` branch. +The common `Pull: master:origin` mapping of a remote `master` +branch to a local `origin` branch, which is then merged to a +ocal development branch, again typically named `master`, is made +when you run `git clone` for you to follow this pattern. ++ +[NOTE] +There is a difference between listing multiple +directly on `git-pull` command line and having multiple +`Pull:` lines for a and running +`git-pull` command without any explicit parameters. + listed explicitly on the command line are always +merged into the current branch after fetching. In other words, +if you list more than one remote refs, you would be making +an Octopus. While `git-pull` run without any explicit +parameter takes default s from `Pull:` lines, it +merges only the first found into the current branch, +after fetching all the remote refs. This is because making an +Octopus from remote refs is rarely done, while keeping track +of multiple remote heads in one-go by fetching more than one +is often useful. + Some short-cut notations are also supported. +