¿Cómo puedo formatear el parche con lo que escondo?

En git, guardo mis cambios. ¿Es posible que pueda crear un parche con lo que escondo? ¿Y aplicar ese parche en algún otro repository (el de mi compañero de trabajo)?

Sé 'git format-patch -1', pero creo que es por lo que he comprometido. Pero estoy buscando lo mismo para los cambios que escondí?

¿Y cómo puedo aplicar un parche en otro repository?

Claro, el git stash show apoya esto:

 git stash show -p 

Esta respuesta proporciona información sobre cómo save el parche y aplicarlo donde desee usarlo.

Para esconder la salida en un file:

  git stash show -p --color=never > my-patch-name.patch 

Verificar que el parche se vea bien:

 git apply --stat my-patch-name.patch 

Verificar que no haya errores

 git apply --check my-patch-name.patch 

Aplique el parche

 git apply my-patch-name.patch 

Utilizar

 $> git stash list stash@{0}: WIP on master: 84fx31c Merged with change to /public/ stash@{1}: WIP on master: 463yf85 FlupResource: also takes json as a query parameter 

para get una list de sus cosas recientemente escondidas. Git realmente crea objects de compromiso cuando guardas.

Son compromisos como todo lo demás. Puedes verlos en una sucursal:

 $> git checkout -b with_stash stash@{0} 

A continuación, puede publicar esta twig y su colega puede fusionar o seleccionar cuidadosamente esa confirmación.

Las soluciones anteriores no funcionarán para datos binarys. A continuación, agregue compatibilidad para ello:

 git stash show stash@{0} -p --binary 

Editar

Nota: Solo quería agregar un comentario a las respuestas anteriores, pero mi reputación no es suficiente.

Creo que este podría ser uno de los udpates de Git recientemente. ya no tienes que parchar los cambios que escondiste. puedes simplemente aplicar tus cambios escondidos en una twig a otra.

por ejemplo, en la twig A has ocultado algunos cambios, denominados stash @ {1}.

ahora cambia a la twig B. puede hacer:

 $git stash apply stash@{1} 

esto aplica su twig A cambia a la twig B.