basic merge vs rebase and fast forward vs rebase with merge code example

Example 1: git rebase vs merge

Git rebase and merge both integrate changes from one branch into another. Where they differ is how it's done. Git rebase moves a feature branch into a master. Git merge adds a new commit, preserving the history

Example 2: git pull vs rebase

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.