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::merge-options.txt[] include::fetch-options.txt[] include::pull-fetch-param.txt[] include::urls.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. If you tried a pull which resulted in a complex conflicts and would want to start over, you can recover with gitlink:git-reset[1]. 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