git pull vs rebase

C++
git pull fetches the latest changes of the current branch from a remote and applies those changes to your local copy of the branch. 
Generally this is done by merging, i.e. the local changes are merged into the remote changes. So git pull is similar to git fetch & git merge.

git pull --rebase :
The local changes you made will be rebased on top of the remote changes, instead of being merged with the remote changes.
Source

Also in C++: