Git Merge vs Rebase – What Is the Difference and When Should You Use Each?