Aby stworzyć plik ze zrzutem różnicy pomiędzy ostatnim commitem a stanem plików:

git diff XXX > a.patch

gdzie XXX może być:

  • brak – pliki poza stage area, ale dodane do gita (zmiany w roboczym drzewie)
  • –cached – pliki ze stage area (zmiany pomiędzy indeksem a ostatnim commitem)
  • HEAD – oba rodzaje (zmiany pomiędzy roboczym drzewem a ostatnim commitem)

Żadna opcja nie uwzględnia plików nie dodanych do git (nowoutworzonych).

Aby zaaplikować patch

git apply a.patch

Ostrzeżenie

warning: jakis-plik.ts has type 100644, expected 100755

można zignorować, informuje tylko, że ten plik niespodziewanie ma atrybut „wykonywalny”.

Natomiast komendy z rodziny

git format-patch ...

zawierają modyfikacje zawarte w commitach, tu więcej.

Czyli aby uzyskać kompletną różnicę pomiędzy dwoma branchami (bieżący i master)

git format-patch master --stdout > plik.patch

Stash

Aby porównać zawartość schowka z aktualnymi plikami (warto zmiany od razu wrzucić do jakiegoś pliku)

git stash show -p > stash.diff
Kategorie: git