Jak wyeksportować pliki z repozytorium git bez historii zmian?

Często jako produkt do klienta przekazywane są nie tylko pliki binarne, ale również kody źródłowe aplikacji.
Warto wtedy rozważyć, czy chcemy przekazywać całe repozytorium GIT czy jedynie kody źródłowe.

Gdybyśmy byli odbiorcą produktu, historia zmian plików może być bardzo cenną informacją. Dzięki historii możemy odczytać kontekst zmian - jakie pliki były zmieniane w ramach pojedynczego commita i przeczytać opis commitów.

Z drugiej strony, jeżeli nasze opisy commitów mają słabą jakość lub repozytorium zawiera np. gałęzie rozwojowe dla przyszłych wersji, to możemy jednak nie chcieć przekazywać całego repozytorium GIT.

GIT posiada polecenie, które umożliwia eksport plików bez ich historii do archiwum ZIP.
Ważną kwestią jest wskazanie z jakiego punktu zostaną wyeksportowane pliki. Najlepiej podać punkt, który się nie zmienia np. konkretny commit ID lub tag.
Możemy też podać nazwę brancha, ale wtedy należy upewnić się, że mamy pobrane ostatnie zmiany np. dla brancha master możemy użyć polecenia git checkout master && git pull.

Przykład eksportu kodów źródłowych z tag'a v2.0.13 do pliku project.zip

1git archive --format zip --output project.zip v2.0.13