X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=Documentation%2Fgit-pull.txt;h=e1eb2c1d0037f06dbf2b5cc0bde84918157ee2bf;hb=8b014d7157d29ce76b0f631e19c6e2ce9aeb2366;hp=13be992006d8252ca737e37dd21ed8f2d1e13412;hpb=1fcdd62adf81a172f45c7c6a58177212d500b9d9;p=git.git diff --git a/Documentation/git-pull.txt b/Documentation/git-pull.txt index 13be99200..e1eb2c1d0 100644 --- a/Documentation/git-pull.txt +++ b/Documentation/git-pull.txt @@ -3,7 +3,7 @@ git-pull(1) NAME ---- -git-pull - Pull and merge from another repository or a local branch +git-pull - Fetch from and merge with another repository or a local branch SYNOPSIS @@ -29,10 +29,64 @@ include::fetch-options.txt[] include::pull-fetch-param.txt[] -include::urls.txt[] +include::urls-remotes.txt[] include::merge-strategies.txt[] +DEFAULT BEHAVIOUR +----------------- + +Often people use `git pull` without giving any parameter. +Traditionally, this has been equivalent to saying `git pull +origin`. However, when configuration `branch..remote` is +present while on branch ``, that value is used instead of +`origin`. + +In order to determine what URL to use to fetch from, the value +of the configuration `remote..url` is consulted +and if there is not any such variable, the value on `URL: ` line +in `$GIT_DIR/remotes/` file is used. + +In order to determine what remote branches to fetch (and +optionally store in the tracking branches) when the command is +run without any refspec parameters on the command line, values +of the configuration variable `remote..fetch` are +consulted, and if there aren't any, `$GIT_DIR/remotes/` +file is consulted and its `Pull: ` lines are used. +In addition to the refspec formats described in the OPTIONS +section, you can have a globbing refspec that looks like this: + +------------ +refs/heads/*:refs/remotes/origin/* +------------ + +A globbing refspec must have a non-empty RHS (i.e. must store +what were fetched in tracking branches), and its LHS and RHS +must end with `/*`. The above specifies that all remote +branches are tracked using tracking branches in +`refs/remotes/origin/` hierarchy under the same name. + +The rule to determine which remote branch to merge after +fetching is a bit involved, in order not to break backward +compatibility. + +If explicit refspecs were given on the command +line of `git pull`, they are all merged. + +When no refspec was given on the command line, then `git pull` +uses the refspec from the configuration or +`$GIT_DIR/remotes/`. In such cases, the following +rules apply: + +. If `branch..merge` configuration for the current + branch `` exists, that is the name of the branch at the + remote site that is merged. + +. If the refspec is a globbing one, nothing is merged. + +. Otherwise the remote branch of the first refspec is merged. + + EXAMPLES -------- @@ -42,7 +96,7 @@ git pull, git pull origin:: current branch. Normally the branch merged in is the HEAD of the remote repository, but the choice is determined by the branch..remote and - branch..merge options; see gitlink:git-repo-config[1] + branch..merge options; see gitlink:git-config[1] for details. git pull origin next:: @@ -52,7 +106,8 @@ git pull origin next:: git pull . fixes enhancements:: Bundle local branch `fixes` and `enhancements` on top of - the current branch, making an Octopus merge. + the current branch, making an Octopus merge. This `git pull .` + syntax is equivalent to `git merge`. git pull -s ours . obsolete:: Merge local branch `obsolete` into the current branch, @@ -93,7 +148,7 @@ gitlink:git-reset[1]. SEE ALSO -------- -gitlink:git-fetch[1], gitlink:git-merge[1], gitlink:git-repo-config[1] +gitlink:git-fetch[1], gitlink:git-merge[1], gitlink:git-config[1] Author @@ -110,4 +165,3 @@ Junio C Hamano and the git-list . GIT --- Part of the gitlink:git[7] suite -