En git, guardo mis cambios. ¿Es posible que pueda crear un parche con lo que guardo? ¿Y luego aplicar ese parche en otro repositorio (el de mi compañero de trabajo)?
Lo sé git format-patch -1
, pero creo que es por lo que me he comprometido. Pero estoy buscando lo mismo para los cambios que guardé.
¿Y cómo puedo aplicar un parche en otro repositorio?
man patch
y no vi ninguna opción para la aplicación de parches interactivos. Sin embargo, dado que los archivos de parche son archivos de texto sin formato, generalmente lo que se haría sería editar el parche en un editor de texto para recortar las partes relevantes para aplicarpatch
. Alternativamente, si está aplicando el parche en otro repositorio de Git, puede aplicarlo todo y luego seleccionar selectivamente losgit checkout
archivos que no desea cambiar (git checkout
con un nombre de archivo desecha los cambios no organizados).git add --interactive ${YOUR_FILES}
y le dará la oportunidad de comprometerse parcialmente.git stash show -p stash@{1} > patch.txt
Esta respuesta proporciona información sobre cómo guardar el parche y aplicarlo donde desea usarlo.
Para esconder la salida en un archivo:
Verifique que el parche se vea bien:
Verificar sin errores:
Aplique el parche
fuente
git apply --check --ignore-space-change --ignore-whitespace my-patch-name.patch
aplique el parche:git apply --ignore-space-change --ignore-whitespace my-patch-name.patch
git apply
no recogí el diff.Utilizar
para obtener una lista de tus cosas escondidas recientemente. Git en realidad crea objetos de confirmación cuando se esconde.
Son commits como todo lo demás. Puedes verlos en una rama:
Luego puede publicar esta rama y su colega puede fusionar o seleccionar ese compromiso.
fuente
Las soluciones anteriores no funcionarán para datos binarios. Lo siguiente agrega soporte para ello:
Editar
Nota: Solo quería agregar un comentario a las respuestas anteriores, pero mi reputación no es suficiente.
fuente
Creo que este podría ser uno de los udpates de Git recientemente. ya no tienes que remendar los cambios que guardaste. simplemente puede aplicar sus cambios escondidos en una rama a otra.
digamos que en la rama A escondió algunos cambios, conocidos como stash @ {1}.
ahora cambia a la rama B. simplemente puede hacer:
esto aplica tus cambios de rama A a rama B.
fuente