Odpowiedzi:
Zarówno wejście, jak i wyjście są różne:
git apply pobiera łatkę (np. wyjście git diff ) i stosuje je do katalogu roboczego (lub indeksu, jeśli --indexalbo --cachedjest używany).git ampobiera skrzynkę zatwierdzeń sformatowanych jako wiadomości e-mail (np. dane wyjściowe git format-patch) i stosuje je do bieżącej gałęzi.git amużywa git applyza kulisami , ale wykonuje więcej pracy przed (odczytywanie Maildirlub mboxi analizowanie wiadomości e-mail) i po (tworzenie zatwierdzeń).
git applywydaje się, że akceptuje również git format-patchdane wyjściowe.
git applydziałałyby również dla danych wyjściowych z, git format-patchale zmiany byłyby niestabilne i musiałyby zostać zatwierdzone (tworząc w ten sposób inny punkt zatwierdzenia w indeksie, do którego są stosowane). Z git amtobą przenosisz informacje o zatwierdzeniu (wraz z autorem itp.) Do indeksu, do którego jest stosowany. git applynastępnie służy do łatania repozytorium (złe), git ammoże wprowadzić uzasadnione zmiany funkcji i dołączyć je do repozytorium (preferowane podejście).
git applysłuży do stosowania prostych różnic (np. z git diff), podczas gdy git amsłuży do nakładania łat i sekwencji łatek z e-maili, w formacie mbox lub Maildir i jest „przeciwieństwem” git format-patch. git ampróbuje wyodrębnić informacje o zatwierdzeniach i dane autora z wiadomości e-mail, dlatego może dokonywać zatwierdzeń.
Po git amzastosowaniu łatki, jeśli używasz git status, nie zobaczysz żadnych lokalnych zmian.
git applyumożliwia wprowadzanie zmian w plikach źródłowych tak, jakbyś sam pisał kod, w konsekwencji git statusi git diffwypisze zmiany wprowadzone w łatce, którą zastosowałeś, następnie możesz naprawić / dodać więcej zmian i przesłać je razem jako jedną nową łatkę .
ammoże być traktowane jako skrót odApply Mail...