Otra pregunta que se dice git pulles como un git fetch+ git merge.
Pero, ¿cuál es la diferencia entre git pullVS git fetch+ git rebase?
git
git-rebase
git-pull
git-fetch
Miguel
fuente
fuente

Respuestas:
Debería ser bastante obvio a partir de su pregunta que en realidad solo está preguntando sobre la diferencia entre
git mergeygit rebase.Entonces, supongamos que está en el caso común: ha realizado un trabajo en su rama maestra y extrae del origen, que también ha hecho algo de trabajo. Después de la búsqueda, las cosas se ven así:
Si se fusiona en este punto (el comportamiento predeterminado de git pull), suponiendo que no haya conflictos, terminará con esto:
Si, por otro lado, hiciste el rebase apropiado, terminarías con esto:
El contenido de su árbol de trabajo debería terminar igual en ambos casos; acabas de crear una historia diferente antes de eso . El rebase reescribe su historial, haciendo que parezca que se ha comprometido encima de la nueva rama maestra de origen (
R), en lugar de donde se comprometió originalmente (H). Nunca debe usar el enfoque de rebase si alguien más ya se ha retirado de su rama maestra.Finalmente, tenga en cuenta que en realidad puede configurar
git pulluna rama determinada para usar rebase en lugar de fusionar estableciendo el parámetro configbranch.<name>.rebaseen true. También puede hacer esto para un solo tirón usandogit pull --rebase.fuente
TLDR:
git pulles como corrergit fetchentoncesgit mergegit pull --rebasees comogit fetchentoncesgit rebaseEn respuesta a tu primera declaración,
git pulles como ungit fetch+git merge.(Ref: https://git-scm.com/docs/git-pull )
Para su segunda declaración / pregunta:
'Pero, ¿cuál es la diferencia entre
git pullVSgit fetch+git rebase'De nuevo, de la misma fuente:
git pull --rebaseAhora, si quisieras preguntar
'la diferencia entre
mergeyrebase'eso también se responde aquí:
https://git-scm.com/book/en/v2/Git-Branching-Rebasing
(la diferencia entre alterar la forma en que se registra el historial de versiones)
fuente
git fetch + git rebasefuncionan los comandos a partir de ahora. No hay más o menos conflicto en nuestro árbol de git a partir de ahora :)