X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=Documentation%2Fgit-pull.txt;h=c65ca9a5300096d69d540657ffd963070f429874;hb=93d69d86912c44206543f6670e93f9fc6f2f859f;hp=c35d2eb54cfccbf8aa40d5d7a3a844f4a4d7172d;hpb=dbc37438687e110697574d175e4eca5f9cbeae81;p=git.git diff --git a/Documentation/git-pull.txt b/Documentation/git-pull.txt index c35d2eb5..c65ca9a5 100644 --- a/Documentation/git-pull.txt +++ b/Documentation/git-pull.txt @@ -1,6 +1,5 @@ git-pull(1) =========== -v0.99.4, Aug 2005 NAME ---- @@ -9,22 +8,106 @@ git-pull - Pull and merge from another repository. SYNOPSIS -------- -'git-pull' ... +'git-pull' ... DESCRIPTION ----------- -Runs 'git-fetch' with the given parameters. +Runs `git-fetch` with the given parameters, and calls `git-merge` +to merge the retrieved head(s) into the current branch. -When only one ref is downloaded, runs 'git resolve' to merge it -into the local HEAD. Otherwise uses 'git octopus' to merge them -into the local HEAD. +Note that you can use `.` (current directory) as the + to pull from the local repository -- this is useful +when merging local branches into the current branch. OPTIONS ------- +include::merge-options.txt[] + +include::fetch-options.txt[] + include::pull-fetch-param.txt[] +include::merge-strategies.txt[] + + +EXAMPLES +-------- + +git pull, git pull origin:: + Fetch the default head from the repository you cloned + from and merge it into your current branch. + +git pull -s ours . obsolete:: + Merge local branch `obsolete` into the current branch, + using `ours` merge strategy. + +git pull . fixes enhancements:: + Bundle local branch `fixes` and `enhancements` on top of + the current branch, making an Octopus merge. + +git pull --no-commit . maint:: + Merge local branch `maint` into the current branch, but + do not make a commit automatically. This can be used + when you want to include further changes to the merge, + or want to write your own merge commit message. ++ +You should refrain from abusing this option to sneak substantial +changes into a merge commit. Small fixups like bumping +release/version name would be acceptable. + +Command line pull of multiple branches from one repository:: ++ +------------------------------------------------ +$ cat .git/remotes/origin +URL: git://git.kernel.org/pub/scm/git/git.git +Pull: master:origin + +$ git checkout master +$ git fetch origin master:origin +pu:pu maint:maint +$ git pull . origin +------------------------------------------------ ++ +Here, a typical `.git/remotes/origin` file from a +`git-clone` operation is used in combination with +command line options to `git-fetch` to first update +multiple branches of the local repository and then +to merge the remote `origin` branch into the local +`master` branch. The local `pu` branch is updated +even if it does not result in a fast forward update. +Here, the pull can obtain its objects from the local +repository using `.`, as the previous `git-fetch` is +known to have already obtained and made available +all the necessary objects. + + +Pull of multiple branches from one repository using `.git/remotes` file:: ++ +------------------------------------------------ +$ cat .git/remotes/origin +URL: git://git.kernel.org/pub/scm/git/git.git +Pull: master:origin +Pull: +pu:pu +Pull: maint:maint + +$ git checkout master +$ git pull origin +------------------------------------------------ ++ +Here, a typical `.git/remotes/origin` file from a +`git-clone` operation has been hand-modified to include +the branch-mapping of additional remote and local +heads directly. A single `git-pull` operation while +in the `master` branch will fetch multiple heads and +merge the remote `origin` head into the current, +local `master` branch. + + +SEE ALSO +-------- +gitlink:git-fetch[1], gitlink:git-merge[1] + Author ------ @@ -33,7 +116,9 @@ and Junio C Hamano Documentation -------------- -Documentation by David Greaves, Junio C Hamano and the git-list . +Documentation by Jon Loeliger, +David Greaves, +Junio C Hamano and the git-list . GIT ---