Polecenie git, które byłoby najbliższe temu, czego szukasz, byłoby przez git archive.
Zobacz tworzenie kopii zapasowej projektu korzystającego z git : w archiwum umieści wszystkie pliki (w tym moduły podrzędne, jeśli używasz git-archive-allskryptu)
Następnie możesz użyć tego archiwum w dowolnym miejscu, zwracając tylko pliki, bez .gitkatalogu.
git archive --remote=<repository URL> | tar -t
Jeśli potrzebujesz folderów i plików tylko z pierwszego poziomu:
git archive --remote=<repository URL> | tar -t --exclude="*/*"
Aby wyświetlić tylko foldery pierwszego poziomu zdalnego repozytorium:
git archive --remote=<repository URL> | tar -t --exclude="*/*" | grep "/"
Uwaga: to nie działa dla GitHub (nie jest obsługiwane)
Musiałbyś więc sklonować (płytko, aby przyspieszyć krok klonowania), a następnie zarchiwizować lokalnie :
git clone --depth=1 git@github.com:xxx/yyy.git
cd yyy
git archive --format=tar aTag -o aTag.tar
Inną opcją byłoby wykonanie płytkiego klonu (jak wspomniano poniżej), ale zlokalizowanie folderu .git w innym miejscu.
git --git-dir=/path/to/another/folder.git clone --depth=1 /url/to/repo
Folder repo zawierałby tylko plik, bez .git.
Uwaga: git --git-dir jest opcją poleceniagit , nie git clone.
Aktualizacja za pomocą Git 2.14.X / 2.15 (Q4 2017): pozwoli to uniknąć dodawania pustych folderów .
" git archive", szczególnie gdy jest używany z pathspec, zapisał pusty katalog w swoim wyjściu, mimo że sam Git nigdy tego nie robi.
Zostało to naprawione.
Zobacz zatwierdzenie 4318094 (12 września 2017) autorstwa René Scharfe (``) .
Sugerowane przez: Jeff King ( peff) .
(Scalone przez Junio C Hamano - gitster- w zatwierdzeniu 62b1cb7 , 25 września 2017 r.)
archive: nie dodawaj pustych katalogów do archiwów
Chociaż git nie śledzi pustych katalogów, git archivemożna go oszukać, aby umieścić niektóre z nich w archiwach.
Chociaż jest to obsługiwane przez obiektową bazę danych, nie może być reprezentowane w indeksie i dlatego jest mało prawdopodobne, aby wystąpiło w środowisku naturalnym.
Ponieważ puste katalogi nie są obsługiwane przez git, nie powinny być również zapisywane w archiwach.
Jeśli naprawdę potrzebny jest pusty katalog, można go śledzić i archiwizować, umieszczając w nim pusty .gitignoreplik.