2011-12-19 16 views
11

Siempre uso git rebase para sincronizar mi código, encontré que git stash guarda el trabajo actual y después de obtener el último código de master podemos fusionarlo con nuestro código usando git stash pop.git stash pop vs git rebase

Supongamos que la secuencia es:

  • git stash, es decir, mi trabajo actual se guarda
  • git checkout master, a continuación, git pull master, es decir que haber recogido el último código de maestro
  • git checkout mybranch
  • git stash pop

Supongo que esto fusionará mi trabajo con el código actualizado, si en lugar de git stash pop voy a hacer
git rebase master, entonces el resultado será el mismo o no?

Su sugerencia y ayuda serán apreciadas, Gracias por su tiempo.

Respuesta

12

El alijo está destinado a almacenar los cambios que no están destinados a ser cometidos todavía. Por ejemplo, si está trabajando en algo que aún no está hecho y desea trabajar en otra cosa por un tiempo sin comprometer el trabajo sin terminar, entonces usa un escondite para almacenarlo para usarlo más adelante.

Si, no obstante, tiene confirmaciones reales, que contienen trabajos terminados, utilice git merge o git rebase para fusionar/volver a establecer esas confirmaciones en el historial.

+0

¡Realice la existencia de esta característica! Siempre lo hago de nuevo ... ¡qué vergüenza! Gracias :) – nonintanon

+0

Más información sobre cuándo usar 'git merge' vs' git rebase' aquí: http://stackoverflow.com/a/804156/2104168 – cjsimon