Saya menemukan koleksi slackbuild, beberapa yang saya butuhkan ada di GitHub. https://github.com/PhantomX/slackbuilds/ Saya tidak ingin mendapatkan semua git.
git clone https://github.com/PhantomX/slackbuilds.git
Tetapi hanya mendapatkan slackbuild, untuk yang ini .
Bagaimana cara melakukannya? Apa itu mungkin?
Jawaban:
Anda akhirnya akan mengunduh seluruh riwayat, jadi saya tidak melihat banyak manfaat di dalamnya, tetapi Anda dapat checkout bagian tertentu menggunakan checkout "jarang". Mengutip posting Stack Overflow ini :
Anda mungkin lebih baik menggunakan klon dangkal juga. Alih-alih
git pull
perintah yang diberikan sebelumnya, coba:sumber
error: Sparse checkout leaves no entry on working directory
setelah melakukan git pull setelah melakukan modifikasi kecore.sparseCheckout
dan.git/info/sparse-checkout
Coba ini:
sumber
/trunk
dan menghapus/tree/master
. Lebih lanjut di sinigit clone --filter
dari Git 2.19Opsi ini sebenarnya akan melewatkan mengambil objek yang tidak dibutuhkan dari server:
Server harus dikonfigurasi dengan:
Tidak ada dukungan server pada v2.19.0, tetapi sudah dapat diuji secara lokal.
TODO:
--filter=blob:none
melompati semua gumpalan, tetapi masih mengambil semua objek pohon. Tetapi pada repo yang normal, ini harus kecil dibandingkan dengan file itu sendiri, jadi ini sudah cukup baik. Ditanya di: https://www.spinics.net/lists/git/msg342006.html Devs menjawab a--filter=tree:0
sedang mengerjakan hal itu.Ingat yang
--depth 1
sudah tersirat--single-branch
, lihat juga: /programming/1778088/how-to-clone-a-single-branch-in-gitfile://$(path)
diperlukan untuk mengatasigit clone
protokol protokol: /programming/47307578/how-to-shallow-clone-a-local-git-repository-with-a-relative-pathFormat
--filter
didokumentasikan padaman git-rev-list
.Ekstensi dibuat untuk protokol jarak jauh Git untuk mendukung fitur ini.
Documents on Git tree:
Uji itu
GitHub hulu .
Output dalam Git v2.19.0:
Kesimpulan: semua gumpalan dari luar
d1/
hilang. Misalnya0975df9b39e23c15f63db194df7f45c76528bccb
, yangd2/b
tidak ada di sana setelah check outd1/
.Perhatikan itu
root/root
danmybranch/mybranch
juga hilang, tetapi--depth 1
menyembunyikannya dari daftar file yang hilang. Jika Anda menghapus--depth 1
, maka mereka muncul di daftar file yang hilang.sumber
Saya berhasil ini akhirnya berkat hal di atas. Saya mengedit file secara langsung, mendapatkan kesalahan dengan tidak sengaja memasukkan tanda kutip. File .git / info / sparse-checkout Anda harus menyertakan hanya direktori, tidak ada kutipan. Berikut ini contohnya: Proyek raksasa ini: https://github.com/SharePoint/sp-dev-fx-webparts , saya hanya menginginkan editor naskah reaksi di direktori sampel. https://github.com/SharePoint/sp-dev-fx-webparts/tree/master/samples/react-script-editor
Saya mengikuti petunjuk di atas dan membuatnya berfungsi ketika file .git / info / sparse-checkout saya memiliki ini di dalamnya
sampel / reaksi-skrip-editor
sumber
Ini akan mengkloning folder tertentu dan menghapus semua riwayat yang tidak terkait dengannya.
sumber
Untuk repositori GitHub, Anda dapat mengkloning setiap sub-direktori dari repositori GitHub (dengan referensi apa pun) menggunakan https://github.com/HR/github-clone
sumber