remote origin force example español git rebase pull

origin - git pull remote branch



¿Cuándo `git pull--rebase` me meterá en problemas? (4)

Comprométete con una rama. Empujar. Combina con otra rama (digamos que estás manteniendo dos líneas de base, una rama de parche y una rama de nuevo desarrollo). Tenga en cuenta que se han enviado otras confirmaciones a la rama del servidor que el suyo está rastreando. tire --rebase. De repente, has vuelto a realizar cada una de las confirmaciones frente al nuevo hash, y destruiste el compromiso de fusión.

Entiendo que cuando uso git pull --rebase , git volverá a escribir el historial y mover mis commit locales para que ocurran después de todas las confirmaciones en la rama de la que acabo de sacar.

Lo que no entiendo es que esto sería algo malo. La gente habla de meterse en problemas con git pull --rebase donde puedes terminar con una rama de la que otras personas no pueden sacar. Pero no entiendo cómo es posible, ya que todo lo que hace es reproducir sus compromisos locales, aún no públicos, en la parte superior de la sucursal que extrajo. Entonces, ¿cuál es el problema allí?


Es solo un problema si solo ha publicado (empujado) algunas de sus confirmaciones, porque sería más difícil fusionarse con otros repositorios que ya tienen esas confirmaciones. Dado que su SHA1 ha cambiado, Git intentará volver a reproducirlos en esos repositorios.

Si no lo has hecho (presionó cualquiera de esos commits nuevamente), cualquier rebase debería ser seguro.

Entonces, el problema aquí es: ¿está seguro de que todo el compromiso local que está redefiniendo sigue siendo ... local?
¿Y estás seguro de ese '' git pull --rebase '' después de '' git pull --rebase ''?

Si está trabajando en una "sucursal privada" (una sucursal que nunca ha presionado, pero que solo fusiona o rebase en una sucursal pública, una que usted presionará), entonces puede volver a establecer la base de esa sucursal privada en el momento que desee.

Al final, todo depende del flujo de trabajo de fusión que haya elegido establecer .


Recuerde que Git es un sistema de control de fuente distribuido . Las personas no tienen que sacar del repositorio central al que están presionando: en ciertos flujos de trabajo, pueden extraer sus cambios directamente de usted. En esos casos, la reescritura de su historial puede causar los problemas de los que está hablando


Si nadie se ha apartado de ti, y no has empujado tus commits (antes de la rebase) en ningún otro lado, entonces teóricamente estás bien. Sin embargo, Git está diseñado para manejar bien las fusiones y es posible que encuentre menos trabajo en general si tira y se fusiona en lugar de tirar y rebasear.