Perche le patch
Le patch sono diff portatili che si possono inviare via email, incollare in un ticket, o memorizzare come file. Sono come funziona lo sviluppo del kernel Linux su scala.
Creare con diff e apply
git diff > change.patch
git diff main..feature > series.patch
git diff --staged > staged.patch
git apply change.patch
git apply --check change.patch
git apply --3way change.patch
Creare con format-patch
git format-patch -1 HEAD
git format-patch main
git format-patch -3 --cover-letter -o out/
Applicare con am
git am 0001-fix.patch
git am out/*.patch
git am --3way out/*.patch
git am --abort
git am --skip
Patch binarie
git diff --binary > with-binaries.patch
git format-patch --binary -1
Stat o sommario
git diff --stat
git format-patch --stat=200 -1
Errori comuni
Generare con git diff quando servono metadati; format-patch e la scelta giusta per commit condivisibili.
Range diff per review
git range-diff main..v1 main..v2