Jika saya tar folder yang merupakan repositori git, dapatkah saya melakukannya tanpa menyertakan .git
file terkait? Jika tidak, bagaimana cara saya melakukannya melalui perintah?
16
Lihatlah dulu git help archive
. archive
adalah perintah git yang memungkinkan untuk membuat arsip yang hanya berisi file yang dilacak git. Mungkin apa yang Anda cari. Satu contoh tercantum di akhir halaman manual:
git archive --format=tar --prefix=git-1.4.0/ v1.4.0 | gzip >git-1.4.0.tar.gz
Jawaban paling sederhana: Tambah
--exclude-vcs
--exclude-vcs
Ini mengecualikan semua direktori sistem kontrol versi
Secara pribadi saya gunakan
jadi yang perlu Anda lakukan adalah menambahkan --exclude-vcs di akhir perintah.
sumber
tar --exclude-vcs -zcvf foo.tar.gz ./FOLDER_NAME
Jika Anda ingin arsip menyertakan file yang dilacak oleh git, tetapi bukan repositori git itu sendiri atau file apa pun yang dihasilkan atau tidak dilacak, maka gunakan
git archive
.Jika Anda secara spesifik ingin mengecualikan
.git
tetapi memasukkan yang lainnya, di Linux atau FreeBSD atau OSX atau Cygwin, tar memiliki opsi sederhana untuk mengecualikan direktori:Dengan GNU tar (yaitu di Linux atau Cygwin), Anda dapat mempersingkat ini menjadi
tar czf foo.tgz --exclude .git foo
.Cara POSIX membuat arsip adalah
pax
.sumber
git
mengkompilasi pada sistem mana pun di manatar
tidak tersedia? :-)tar
tidak memiliki--exclude
opsi, seperti OpenBSD (yang diakui menduplikasis
opsi pax , tapi itu bukan ekstensi sintaks perintah tar yang umum).Berkat jawaban yang saya dapatkan pada salah satu pertanyaan saya, saya menemukan solusi lain. Jadi demi kelengkapan, berikut adalah solusi yang memanfaatkan
find
:Dan jika Anda ingin mengecualikan kemungkinan
.git
folder di dalam (sub) + folder:Belakangan juga dapat dicapai melalui:
Cukup praktis jika Anda dapat menggunakan teknik penyaringan lainnya
find
, misalnya tanggal modifikasi, izin, ...(Sebagai nama file yang sering well-formed diasumsikan, jika tidak, anda perlu menggunakan nol byte sebagai pemisah yang dapat berarti
-print0
untukfind
dan--null
untuktar
jika didukung.)sumber