In the simplest terms, git pull
does a git fetch
followed by a git merge
.
git fetch
updates your remote-tracking branches under refs/remotes/<remote>/
. This operation is safe to run at any time since it never changes any of your local branches under refs/heads
.
git pull
brings a local branch up-to-date with its remote version, while also updating your other remote-tracking branches.
From the Git documentation for git pull
:
git pull
runsgit fetch
with the given parameters and then depending on configuration options or command line flags, will call eithergit rebase
orgit merge
to reconcile diverging branches.