Git Merge vs Rebase: Key Differences Explained