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?
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?
Respuestas:
Debería ser bastante obvio a partir de su pregunta que en realidad solo está preguntando sobre la diferencia entre git mergey git 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í:
- o - o - o - H - A - B - C (master)
\
P - Q - R (origin/master)
Si se fusiona en este punto (el comportamiento predeterminado de git pull), suponiendo que no haya conflictos, terminará con esto:
- o - o - o - H - A - B - C - X (master)
\ /
P - Q - R --- (origin/master)
Si, por otro lado, hiciste el rebase apropiado, terminarías con esto:
- o - o - o - H - P - Q - R - A' - B' - C' (master)
|
(origin/master)
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 config branch.<name>.rebaseen true. También puede hacer esto para un solo tirón usando git pull --rebase.
git pulles como correr git fetchentonces git merge
git pull --rebasees como git fetchentoncesgit rebase
git pulles como un git fetch+ git merge.
"En su modo predeterminado, git pull es una abreviatura
git fetchseguida degit mergeFETCH_HEAD" Más precisamente, segit pullejecutagit fetchcon los parámetros dados y luego llamagit mergepara fusionar las cabezas de rama recuperadas en la rama actual "
(Ref: https://git-scm.com/docs/git-pull )
'Pero, ¿cuál es la diferencia entre git pullVS git fetch+ git rebase'
De nuevo, de la misma fuente:
git pull --rebase
"Con --rebase, ejecuta git rebase en lugar de git merge".
'la diferencia entre mergey rebase'
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)
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 :)