Es rebase y fusionar lo mismo? ¿Por qué hay 2 procedimientos diferentes para hacer una cosa?

Soy nuevo en git y estoy tratando de entender la rebase. Para mí, el process de fusión es más fácil de entender ya que mi experiencia está en Clearcase .
Entonces, antes que nada, no puedo entender si rebase es exactamente lo mismo que fusionar o no. Si es así ¿por qué hay 2 procedimientos para la misma cosa?
También estoy leyendo esta parte de git-ramificación .
Tiene aquí:
enter image description here

Entonces dice:

$ git rebase –onto cliente del server maestro
Esto básicamente dice: "Eche un vistazo a la sucursal del cliente, descubra los parches del común
ancestro de las twigs de cliente y server, y luego reproducirlas en el maestro. "Es un poco complejo; pero el resultado, que se muestra en la Figura 3-32, es genial.

Así que supongo que este command significa tomar todas las confirmaciones después del antecesor común de las twigs de server y cliente excluyendo el antecesor común. Así que terminamos con la siguiente image.

enter image description here

Entonces dice:

Ahora puede avanzar rápidamente su twig principal (vea la Figura 3-33):
$ git checkout master
$ git merge client

enter image description here

Este ejemplo me parece incorrecto.
En la segunda image "movemos" C8 y C9 como resultado de la rebase . Entonces nos fusionamos.
Pero C8 sale de C3 y el código C3 no está presente en la twig master .
Después de la rebase el nuevo C8 es decir, C8' está delante del master y en realidad tiene el master como anterior en la cadena.
Pero, ¿cómo puede esto funcionar? Si C8 depende de C3 la rebase falla, ya que C3 no es parte de la branch .
Por ejemplo, si en C3 hay alguna function utilizada por el cliente, no existe en la twig main . Entonces, después de la rebase el C8' tendrá una dependencia en la function definida en C3 que no existe en main . Entonces el código no comstackría.
¿Alguien podría ayudar a explicar el rebase trabajo de rebase y si lo que digo sobre esta parte del tutorial en git-scm (que es incorrecto) es correcto?

no, no es lo mismo rebase pondrá las confirmaciones de twig rebasadas en línea después de la twig en la que rebase.

La fusión básica creará un nuevo resultado de compromiso de la fusión.

Podríamos decir que rebase evita tener demasiadas twigs paralelas cuando las fusiones son obvias. Pero en caso de que la fusión sea complicada (trabajando en los mismos files, etc.), la fusión es mejor. Esto se debe a que al volver a fusionar, git recalcula los diffs, como

a = b + diff a c = b + diff c

fusionar es d = a + c rebase es cbis = a + diff cbis

y diff c es probablemente fácil de leer, diff cplus podría ser complicado

también está la opción de avance rápido que intenta fusionarse en línea (como rebase) si el diff es simple, y crea una fusión si no es así. Esto es probablemente lo mejor para principiantes