Saltar al contenido

Cree un parche de git a partir de los cambios no confirmados en el directorio de trabajo actual

Nuestro grupo redactor ha pasado mucho tiempo investigando la solución a tus preguntas, te compartimos la respuesta de modo que esperamos serte de gran apoyo.

Solución:

Si aún no ha confirmado los cambios, entonces:

git diff > mypatch.patch

Pero a veces sucede que parte de lo que está haciendo son archivos nuevos que no están rastreados y no estarán en su git diff producción. Entonces, una forma de hacer un parche es organizar todo para una nueva confirmación (git add cada archivo, o simplemente git add .) pero no hagas la confirmación, y luego:

git diff --cached > mypatch.patch

Agregue la opción ‘binario’ si desea agregar archivos binarios al parche (por ejemplo, archivos mp3):

git diff --cached --binary > mypatch.patch

Posteriormente puede aplicar el parche:

git apply mypatch.patch

git diff para cambios sin etapas.

git diff --cached para cambios escalonados.

git diff HEAD para cambios por etapas y sin etapas.

git diff y git apply funcionará para archivos de texto, pero no funcionará para archivos binarios.

Puede crear fácilmente un parche binario completo, pero tendrá que crear una confirmación temporal. Una vez que haya realizado sus compromisos temporales, puede crear el parche con:

git format-patch 

Después de que haya hecho el parche, ejecute este comando:

git reset --mixed 

Esto revertirá su(s) compromiso(s) temporal(es). El resultado final deja su copia de trabajo (intencionalmente) sucia con los mismos cambios que tenía originalmente.

En el lado receptor, puede usar el mismo truco para aplicar los cambios a la copia de trabajo, sin tener el historial de confirmaciones. Simplemente aplique el(los) parche(s), y git reset --mixed .

Tenga en cuenta que es posible que deba estar bien sincronizado para que funcione toda esta opción. He visto algunos errores al aplicar parches cuando la persona que los creaba no había realizado tantos cambios como yo. Probablemente hay formas de hacer que funcione, pero no he investigado mucho.


Aquí se explica cómo crear los mismos parches en Tortoise Git (no es que recomiende usar esa herramienta):

  1. Confirme sus cambios de trabajo
  2. Haga clic derecho en el directorio raíz de la rama y haga clic en Tortoise Git -> Create Patch Serial
    1. Elija el rango que tenga sentido (Since: FETCH_HEAD funcionará si está bien sincronizado)
    2. Crea los parches
  3. Haga clic derecho en el directorio raíz de la rama y haga clic en Tortise Git -> Show Log
  4. Haz clic derecho en la confirmación antes de sus confirmaciones temporales y haga clic en reset "" to this...
  5. Selecciona el Mixed opción

Y cómo aplicarlos:

  1. Haga clic derecho en el directorio raíz de la rama y haga clic en Tortoise Git -> Apply Patch Serial
  2. Seleccione los parches correctos y aplíquelos
  3. Haga clic derecho en el directorio raíz de la rama y haga clic en Tortise Git -> Show Log
  4. Haz clic derecho en la confirmación antes de las confirmaciones del parche y haga clic en reset "" to this...
  5. Selecciona el Mixed opción

valoraciones y reseñas

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *