Sinossi
git send-email [--to <addr>] [--cc <addr>] [--cover-letter] <patch-or-dir>...
Descrizione
Il comando git send-email invia una o più patch via SMTP, ognuna come email correttamente threadata. È lo strumento canonico per inviare patch a progetti guidati da mailing list (kernel Linux, Git stesso, U-Boot, ecc.). Può leggere credenziali SMTP dalla tua config Git, chiederle interattivamente o usare file di autenticazione.
Le patch sono inviate in ordine, con header In-Reply-To che le connettono in un singolo thread. La cover letter (se presente) viene inviata per prima come parent del thread.
Nell'uso quotidiano, git send-email si integra con alias e CI.
Capire il modello dati di Git aiuta a prevedere i risultati.
Opzioni comuni
| Opzione | Descrizione |
|---|---|
--to=<addr> | Destinatario primario. |
--cc=<addr> | Carbon copy. |
--smtp-server=<host> | Server SMTP (o path sendmail). |
--smtp-user=<user> | Username SMTP. |
--annotate | Permette di modificare ogni patch prima dell'invio. |
--dry-run | Mostra cosa verrebbe inviato. |
--in-reply-to=<message-id> | Threada sotto un messaggio esistente. |
--confirm=<mode> | Comportamento di conferma (always, never, cc). |
Esempi
git send-email [email protected] *.patch
# Invia tutte le patch in CWD a una lista
git send-email --cover-letter [email protected] \
[email protected] 0001-*.patch
# Serie con cover letter, primario + cc
git send-email --dry-run --annotate -1 HEAD
# Anteprima di una singola patch senza inviare
git config --global sendemail.smtpServer smtp.gmail.com
git config --global sendemail.smtpServerPort 587
git config --global sendemail.smtpEncryption tls
# Configurazione SMTP una tantum
Errori comuni
Molti server SMTP aziendali bloccano SMTP plain — usa TLS o password specifiche dell'app. Dimenticare --cover-letter quando si invia una serie multi-patch lascia i revisori senza contesto. Inviare un re-roll senza --in-reply-to della cover letter originale frammenta la discussione.
Comandi correlati
git format-patch, git am, git request-pull, git config