Tengo 2 repositorios locales de git que apuntan al mismo repositorio remoto.
En un repositorio de git, si lo hago git format-patch 1
, ¿cómo puedo aplicar ese parche al otro repositorio?
Nota: Primero puede obtener una vista previa de lo que hará su parche:
Primero las estadísticas:
git apply --stat a_file.patch
Luego, una ejecución en seco para detectar errores:
git apply --check a_file.patch
Finalmente, puede usar git am
para aplicar su parche como confirmación: le permite cerrar la sesión de un parche aplicado.
Esto puede ser útil para referencia posterior.
git am --signoff < a_file.patch
Vea un ejemplo en este artículo :
En su registro de git, encontrará que los mensajes de confirmación contienen una etiqueta "Firmado por". Esta etiqueta será leída por Github y otros para proporcionar información útil sobre cómo terminó la confirmación en el código.
git apply name-of-file.patch
O, si lo estás pateando de la vieja escuela:
cd /path/to/other/repository
patch -p1 < 0001-whatever.patch
Primero debes tomar nota de la diferencia entre git am
ygit apply
Cuando lo usa git am
, generalmente desea aplicar muchos parches. Por lo tanto, debe usar:
git am *.patch
o solo:
git am
Git encontrará parches automáticamente y los aplicará en orden ;-)
UPD
Aquí puede encontrar cómo generar tales parches
git apply
... y en --reverse
:-) 👍
Si está utilizando un IDE de JetBrains (como IntelliJ IDEA, Android Studio, PyCharm), puede arrastrar el archivo del parche y soltarlo dentro del IDE, y aparecerá un cuadro de diálogo que mostrará el contenido del parche. Todo lo que tiene que hacer ahora es hacer clic en "Aplicar parche", y se creará una confirmación.
Puede usar cmd mencionado a continuación
git apply fileName.patch
git am < somepatch.patch
produce "fatal: nombre de identificación vacío (para <>) no permitido". ¿Alguien puede explicarme por qué?Author
encabezados en el parche, y / o no lo hicistegit config user.{name,email}
.git apply --check
dicepatch does not apply
, ygit apply -3
dicerepository lacks the necessary blob to fall back on 3-way merge.
En git, rebasar los compromisos es una brisa; pero ¿cómo las personas vuelven a crear sus parches sobre el código actualizado?