Data Cubed interview question

What is the difference between git merge, rebase and squash