Comencé a usar git en algún momento y no entiendo completamente las complejidades. Mi pregunta básica aquí es averiguar la diferencia entre una git pully git pull --rebase, dado que la adición de la --rebaseopción no parece que hacer algo muy diferente: sólo lo hace un tirón.
Por favor, ayúdame a entender la diferencia.

Respuestas:
git pull=git fetch+git mergecontra el seguimiento de la rama aguas arribagit pull --rebase=git fetch+git rebasecontra el seguimiento de la rama aguas arribaSi quieres saber cómo
git mergeygit rebasediferir, lee esto .fuente
git pull --rebasees lo mismogit fetchygit rebasees básicamente cómo es, pero no es exactamente semánticamente equivalente. Hay algunas diferencias, algunas de las cuales se explican aquí. gitolite.com/git-pull--rebasefetch?Respuesta tomada de (y ligeramente modificada):
http://gitolite.com/git-pull--rebase
fuente
a---b+c---d+e---f---p'---q'---r' (foo)ya que el rebase cambia los hashes.A, y envié un RP al repositorio aguas arriba que fue aceptado. Luego, cuando lo hicegit pull --rebasecontra el repositorio ascendente, no obtuve una nuevaA'confirmación además del repositorio ascendente retirado. De hecho, noA'existía en absoluto. ¿Es esto porqueAse fusionó con el sistema? ¿O es porque no hubo diferencia entre el upstream y mi versión rebase?git pull --rebase. Pero una cosa que me confunde en esta situación hipotética es que el responsable del mantenimiento ha cambiado el historial del proyecto que ya se ha incorporado a los repositorios de desarrolladores locales. ¿No es solo una mala práctica en general? Si quisiera aplastar los commits / reescribir el historial, debería haberlo hecho antes de integrarlo en el repositorio central para evitar este tipo de conflictos.Supongamos que tiene dos confirmaciones en la sucursal local:
Después de "git pull", será:
Después de "git pull --rebase", no habrá punto de fusión G. Tenga en cuenta que D y E se convierten en confirmaciones diferentes:
fuente
git rebasehace? Pero estamos hablando de esogit pull --rebase. Y son cosas diferentes.En el caso más simple de no colisiones
Ver también:
man git-pullVer también: ¿
Cuándo debo usar git pull --rebase?
http://git-scm.com/book/en/Git-Branching-Rebasing
fuente
git sdd modified-file; git rebase --continueo fusión:git add modified-file; git commit;dondemodified-filees su archivo local que modificar manualmente / mergetoolfetch? ¿Por qué crearon dosrebaseflujos? 1)git rebasey 2)git pull --rebase?Para esto es importante entender la diferencia entre Merge y Rebase.
Para más detalles, consulte: http://www.derekgourlay.com/archives/428
fuente