git_send_email_y_format_patch

A veces queremos incluir cambios que hicimos en nuestro repositorio, sea local o remoto, a otro repositorio de otra persona. Esto se puede hacer eligiendo los commits que contienen estos cambios y convertirlos en parches. Estos son simplemente archivos que diferencian un archivo de otro, línea por línea. Un parche puede enviarse por cualquier medio electrónico, y el autor de otro repositorio puede aplicar dicho parche a su propio repositorio. Esta es una guía muy simple para crear y enviar estos parches.

En tu repositorio, haz las modificaciones y commits que vayas a enviar como parches. Pueden ser tantos como requieras.

Luego, configura las variables necesarias de send-email:

git config user.name <usuario> # Nombre del autor del commit
git config user.email <usuario>@texto-plano.xyz # Email del autor
git config sendemail.from "Usuario <usuario@texto-plano.xyz>" # Formato "From" para el correo
git config smtpuser <usuario> # Usuario en el servidor SMTP
git config smtpserver texto-plano.xyz # Servidor SMTP
git config smtpserverport 587 # Puerto del servidor
git config sendemail.smtpencryption tls # Encriptación TLS para el servidor
git config sendemailsuppresscc self # Recomendable, evita enviarte el parche a ti mismo

Se pedirá la contraseña del servidor en cada instancia, salvo que se especifique la variable sendemail.smtppassword (inseguro).

Luego, envía los commits que elijas con git send-email. En este caso, ‘-1’ elige el último commit hecho desde HEAD. Es necesario especificar a quién enviarle los parches con ‘–to’.

git send-email -1 --to="Destinatario <destinatario@ejemplo.com>"

Si todo salió bien, el destinatario debería tener todos los parches que elegiste en su casilla de correo.

Para crear un archivo .patch individual, se usa git format-patch. De nuevo, ‘-1’, por ejemplo, elige el último commit. Con ‘-o’ se elige el directorio en el que van a quedar los parches.

git format-patch -1 -o /home/<usuario>

Esta herramienta es útil por si se necesitan enviar los parches por otro programa de manera adjunta. También puede generarse el parche para usarlo de argumento con send-email.

Más información (en inglés):

  • git_send_email_y_format_patch.txt
  • Última modificación: 2021/06/05 22:43
  • por bru