Durante mi presentación de Git Intermedio en LinuxCabal recibí una pregunta que, aunque en su momento contesté, no pude ser convincente. La pregunta: ¿por qué y cuándo usar Rebase en lugar de Merge, especialmente considerando que Merge es un proceso más transparente?
Siento que en ese momento me fui con una finta: al plantear la pregunta de esa manera se implica que Merge y Rebase son dos operaciones diferentes que sirven para lograr el mismo objetivo. Este concepto es equivocado. Contestar la pregunta sin corregirla sólo nos va a llevar a respuestas incorrectas y confusas. La realidad es que Merge y Rebase son operaciones distintas y con diferente propósito pero tienen similitudes que las hacen parecer operaciones similares.
Explico primero lo que es cada uno. Es importante mantener en mente que en Git los commits son estados del contenido (snapshots). Git almacena contenido, no diferencias ni parches.