¿Cómo puedo generar un parche de Git para una confirmación específica?

Resuelto elle asked hace 13 años • 0 respuestas

Quiero crear un parche para un hash de confirmación específico <rev>.

Intenté usar git format-patch <rev>, pero eso generó un parche para cada confirmación desde la <rev>confirmación. ¿Hay alguna manera de generar un parche solo para <rev>?

elle avatar Jul 12 '11 07:07 elle
Aceptado

Intentar:

git format-patch -<n> <rev>

Por ejemplo:

git format-patch -1 HEAD

La -1bandera indica cuántas confirmaciones deben incluirse en el parche:

-<n>

     Prepare parches a partir de las <n> confirmaciones superiores.


Aplique el parche con el comando:

git am < file.patch

Alternativamente, también puedes aplicar (debería funcionar en todos los sistemas operativos, incluido Windows) con:

git apply --verbose file.patch

El -vo --verbosemostrará qué falló, si corresponde. Dándote una pista sobre cómo solucionarlo.

manojlds avatar Jul 12 '2011 00:07 manojlds

Para generar los parches a partir de las <n> confirmaciones superiores de un hash SHA-1 específico:

git format-patch -<n> <SHA-1> --stdout > <name_of_patch_file>.patch

Los últimos 10 parches de head en archivos de un solo parche:

git format-patch -10 HEAD --stdout > 0001-last-10-commits.patch
Sriram Murali avatar Apr 23 '2013 14:04 Sriram Murali

Supongamos que tiene el ID de confirmación 2 después de la confirmación 1 y podrá ejecutar:

git diff 2 1 > mypatch.diff

donde 2 y 1 son hashes SHA-1.

brandon avatar Jul 12 '2011 00:07 brandon

Este comando (como ya lo sugirió @Naftuli Tzvi Kay ),

git format-patch -1 HEAD

Reemplace HEADcon un hash o rango específico.

generará el archivo de parche para la última confirmación formateado para parecerse al formato de buzón de Unix.

-<n>- Prepare parches a partir de las <n> confirmaciones superiores.

Luego puede volver a aplicar el archivo de parche en formato de buzón de la siguiente manera:

git am -3k 001*.patch

Ver: man git-format-patch.

kenorb avatar Jul 28 '2016 13:07 kenorb