git-pull(1) =========== NAME ---- git-pull - Pull and merge from another repository. SYNOPSIS -------- 'git-pull' ... DESCRIPTION ----------- Runs `git-fetch` with the given parameters, and calls `git-merge` to merge the retrieved head(s) into the current branch. 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::pull-fetch-param.txt[] -a, \--append:: Append ref names and object names of fetched refs to the existing contents of `$GIT_DIR/FETCH_HEAD`. Without this option old data in `$GIT_DIR/FETCH_HEAD` will be overwritten. include::merge-pull-opts.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_DIR/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_DIR/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_DIR/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 ------ Written by Linus Torvalds and Junio C Hamano Documentation -------------- Documentation by Jon Loeliger, David Greaves, Junio C Hamano and the git-list . GIT --- Part of the gitlink:git[7] suite