###TLDR:
git pull is like running getgit fetch then git merge
git pull --rebase is like git fetch then git rebase
###In reply to your first statement, git pull is like a git fetch + git merge.
"In its default mode, git pull is shorthand for
git fetchfollowed bygit mergeFETCH_HEAD" More precisely,git pullrunsgit fetchwith the given parameters and then callsgit mergeto merge the retrieved branch heads into the current branch"
(Ref: https://git-scm.com/docs/git-pull)
###For your second statement/question: *'But what is the difference between `git pull` VS `git fetch` + `git rebase`'*
Again, from same source:
git pull --rebase
"With --rebase, it runs git rebase instead of git merge."
###Now, if you wanted to ask *'the difference between `merge` and `rebase`'*
that is answered here too:
https://git-scm.com/book/en/v2/Git-Branching-Rebasing
(the difference between altering the way version history is recorded and what not)