Cuando trabajamos programando algo contra un sistema de control de versiones a veces queremos almacenar los cambios locales sin hacer un commit para volver al código original. Por ejemplo, hemos roto algo y queremos volver al código original, pero tampoco queremos perder los cambios que hemos hecho (aunque no funcionen). O bien estamos trabajando en una nueva versión y tenemos que volver a la versión anterior para arreglar un bug.
Antes, estas soluciones las solucionabamos con el tÃpico copy, svn co, etc. Pero con los nuevos sistemas de control de versiones tenemos opciones más interesantes. GIT tiene el stashing y en BZR tenemos shelving.