Na podstawie podręczników git-format-patch przygotowuje łaty odpowiednie do przesyłania e-mailem, podczas gdy git-diff pokazuje zmiany.
Są to dwie różne rzeczy i mają różne cele, po prostu wypisują format łaty. Ale git-format-patch
dodaje dane o zatwierdzeniu (data, autor, komunikat o zatwierdzeniu) i łączy je w format, który jest odpowiedni do wysyłania jako wiadomości e-mail w systemie Unix (chociaż są to tylko pliki, więc mogą być wysyłane innymi metodami i nadal stosowane przez git-am).
Również git-format-patch
generuje plik poprawki dla każdego popełnić w zakresie, który można określić. Te zmiany zostaną dodane jako zatwierdzenia do repozytorium z git-am
.
git-diff
pokazuje tylko różnicę między dwoma stanami, o które prosisz, i może być użyty do stworzenia pliku łatki. Ale to tylko zwykły plik poprawki, a zastosowanie poprawki zmieni tylko stan katalogu roboczego.
I tak, w ten sposób możesz stworzyć łatkę dla swojego indeksu.
Plik poprawki można wygenerować za pomocą
git diff
polecenia, ale w porównaniu z łatą wygenerowaną przezgit format-patch
polecenie, główne różnice to:Aby wygenerować plik poprawki dla wszystkich zmienionych plików (w indeksie lub katalogu roboczym):
git diff HEAD --binary > my.patch # git diff + git diff --cached/staged == git diff HEAD
Aby zastosować wygenerowany plik poprawki:
# restore the changed files firstly git restore --staged . git restore . # apply the patch to redo the changes git apply my.patch # or patch -p1 < my.patch
źródło