Aradığın şeye en yakın olan git komutu git archive. Git kullanan yedekleme projesine
bakın : bir arşivde tüm dosyaları içerecektir ( komut dosyasını kullanıyorsanız alt modüller dahil )git-archive-all
Daha sonra bu arşivi her yerde kullanabilirsiniz, size sadece dosyaları geri verir, .gitdizin yok .
git archive --remote=<repository URL> | tar -t
Yalnızca ilk düzeyden klasörlere ve dosyalara ihtiyacınız varsa:
git archive --remote=<repository URL> | tar -t --exclude="*/*"
Uzak bir deponun yalnızca birinci düzey klasörlerini listelemek için:
git archive --remote=<repository URL> | tar -t --exclude="*/*" | grep "/"
Not: GitHub için çalışmaz (desteklenmez)
Bu nedenle klonlamanız (klon adımını hızlandırmak için sığ) ve ardından yerel olarak arşivlemeniz gerekir :
git clone --depth=1 git@github.com:xxx/yyy.git
cd yyy
git archive --format=tar aTag -o aTag.tar
Başka bir seçenek de (aşağıda belirtildiği gibi) sığ bir klon yapmak, ancak .git klasörünü başka bir yerde bulmak olacaktır.
git --git-dir=/path/to/another/folder.git clone --depth=1 /url/to/repo
Repo klasörü olmadan sadece dosyayı içerir .git.
Not: komutungit --git-dir bir seçeneğidir , değil .gitgit clone
Git 2.14.X / 2.15 (Q4 2017) ile güncelleme: boş klasörler eklemekten kaçınacaktır .
" git archive", özellikle pathspec ile kullanıldığında Git'in hiçbir zaman yapmamasına rağmen çıktısında boş bir dizin sakladı.
Bu düzeltildi.
Bakınız René Scharfe (``) tarafından 4318094 (12 Eyl 2017) taahhüdü .
Önerilen: Jeff King ( ) . (Göre Birleştirilmiş - Junio Cı Hamano - içinde 62b1cb7 tamamlama 2017 25 Eki)
peff
gitster
archive: arşivlere boş dizin eklemeyin
Git boş dizinleri takip etmese de, git archivebazılarını arşivlere koymak için kandırılabilir.
Bu, nesne veritabanı tarafından desteklense de, dizinde temsil edilemez ve bu nedenle vahşi ortamda gerçekleşmesi olası değildir.
Boş dizinler git tarafından desteklenmediği için arşivlere de yazılmamalıdır.
Boş bir dizin gerçekten gerekliyse, içine boş bir .gitignoredosya yerleştirilerek izlenebilir ve arşivlenebilir .