Soy un novato en Git, y tratando de aprender la diferencia entre git pullvs git rebase. ¿Alguien puede dar un ejemplo de cuándo usar qué opción, ya que creo que ambas tienen el mismo propósito?
Soy un novato en Git, y tratando de aprender la diferencia entre git pullvs git rebase. ¿Alguien puede dar un ejemplo de cuándo usar qué opción, ya que creo que ambas tienen el mismo propósito?
Respuestas:
git pully git rebaseno son intercambiables, pero están estrechamente conectados.
git pullobtiene los últimos cambios de la rama actual desde un control remoto y aplica esos cambios a su copia local de la rama. Generalmente, esto se hace fusionando, es decir, los cambios locales se fusionan con los cambios remotos. Entonces git pulles similar a git fetch & git merge.
Rebasar es una alternativa a la fusión. En lugar de crear una nueva confirmación que combine las dos ramas, mueve las confirmaciones de una de las ramas encima de la otra.
Puede extraer usando rebase en lugar de merge ( git pull --rebase). Los cambios locales que realizó se volverán a basar sobre los cambios remotos, en lugar de fusionarse con los cambios remotos.
Atlassian tiene una excelente documentación sobre fusión frente a rebase .
git-pull - Obtener e integrar con otro repositorio o una sucursal local GIT PULL
Básicamente, está tirando de una rama remota a su local, ejemplo:
git pull origin master
Llevará la rama maestra a su repositorio local
git-rebase: el puerto de avance local se compromete con el cabezal ascendente actualizado GIT REBASE
Este pone sus cambios locales encima de los cambios realizados de forma remota por otros usuarios. Por ejemplo:
SOME-FEATUREAhora desea ver sus cambios y los suyos en su sucursal local. Entonces, realiza la masterrama de pago :
git checkout master
entonces puedes tirar:
git pull origin master
y luego vas a tu sucursal:
git checkout SOME-FEATURE
y puede hacer una reorganización masterpara obtener los últimos cambios y poner sus confirmaciones de rama en la parte superior:
git rebase master
Espero que ahora te quede un poco más claro.
git fetchentonces git rebase origin/master.
En pocas palabras:
-> Git Merge: simplemente fusionará sus cambios y los cambios remotos, y eso creará otro registro del historial de confirmaciones
-> Git Rebase: pondrá sus cambios por encima de todos los cambios remotos nuevos y reescribirá el historial de confirmaciones, por lo que su historial de confirmaciones será mucho más limpio que git merge. Rebase es una operación destructiva. Eso significa que, si no lo aplica correctamente, podría perder el trabajo comprometido y / o romper la consistencia de los repositorios de otros desarrolladores.