¿Alguien podría explicar esto teniendo en cuenta incluso los repositorios remotos en mente?Diferencia entre git pull --rebase, git rebase y git merge
Respuesta
git pull --rebase
es el camino a seguir cuando desee actualizar su rama de desarrollo: esas ramas no suelen publicarse para otros (excepto tal vez para echarle un vistazo) así que reescribir la historia no es un problema y usted realmente no quiero fusiones, etc. en tal rama.
git merge
realiza una fusión; ver la página de manual para más detalles - el comando tiene toneladas de opciones que serían demasiado para explicar aquí.
git rebase
realiza una rebase, es decir, reescribe la historia. Llevará sus confirmaciones hasta el punto en que divergen de la otra rama, las eliminará temporalmente, aplicará las confirmaciones faltantes de la otra rama y luego volverá a aplicar sus compromisos. git rebase
también tiene un modo interactivo donde puede eliminar/modificar/combinar (aplastar) ciertos commits.
Eche un vistazo a http://learn.github.com/p/rebasing.html para obtener buenos gráficos sobre cómo funcionan las rebases.
Nota: git 2.8 (marzo de 2016) permitirá un 'git pull --rebase = comando interactivo'. Ver http://stackoverflow.com/a/29717607/6309. – VonC
git rebase
le permite separar una rama del punto donde ha divergido, y volver a enchufarla en la parte superior de la otra rama. git merge
, en cambio, simplemente fusiona los cambios desde otra rama en la rama actual, sin volver a conectar el historial.
Si no hay conflictos, el resultado es idéntico entre la fusión y rebase, pero la historia es diferente:
(merge branch on master):
master --A--B--C--E
/
branch --D
(rebase branch onto master):
master --A--B--C--D'
En primer caso la fusión crea la rama branch
se combina en master
, lo que lleva a la creación de un commit de fusión, E
. En el segundo caso, D
simplemente se vuelve a enchufar en master
, creando ante commit, D'
.
git pull --rebase
buscará los cambios desde un control remoto, y rebase (vuelva a enchufar) los cambios en la parte superior. Literalmente registrará los cambios que realizó que no están en el control remoto y los reproducirá a partir del último cambio que acaba de realizar.
- 1. git pull VS git fetch git rebase
- 2. Usando git-svn: Pull, Merge or Rebase?
- 3. git pull --rebase
- 4. phpstorm git pull --rebase
- 5. Cómo push/pull git rebase
- 6. git rebase después de git merge anterior
- 7. git merge vs rebase usando git svn
- 8. Deshacer un git pull --rebase
- 9. Deshacer un git pull --rebase?
- 10. Git color merge/rebase conflicts
- 11. `git svn rebase` vs` git rebase trunk`
- 12. `git rebase`
- 13. git pull --rebase upstream & git push origen rechaza avance rápido?
- 14. "git rebase origin" vs. "git rebase origin/master"
- 15. Git rebase/merge para publicaciones públicas
- 16. ¿Cuál es la diferencia entre "git reset" vs "git rebase"?
- 17. git rebase interactive: squash merge commits together
- 18. git stash pop vs git rebase
- 19. Principios básicos de git rebase
- 20. git rebase problemas
- 21. git rebase cometer selección
- 22. git crash during rebase
- 23. git rebase y git push: avance rápido, ¿por qué usar?
- 24. En git, ¿cuál es la diferencia entre merge --squash y rebase?
- 25. git-svn rebase y dcommit problema
- 26. Git: 'rebase' no es un comando git. Ver 'git --help'
- 27. ¿Qué hace exactamente git rebase --skip do?
- 28. ¿Por qué git pull --rebase falla al reproducir confirmaciones existentes?
- 29. git rebase en actualizaciones remotas
- 30. Git ramificación/rebase buenas prácticas
No hay 'git commit --rebase'; ¿quisiste decir 'git pull --rebase'? O bien, 'git svn dcommit --no-rebase'? (se perdió la etiqueta git-svn al principio) – torek
gracias por señalar el error ... ¡He actualizado la pregunta! –