Menggunakan git untuk mendapatkan revisi terbaru saja

380

Saya ingin melacak proyek yang menggunakan git. Saya tidak ingin mengkloning repositori lengkap dan riwayat lengkap, saya hanya ingin revisi terbaru, dan saya ingin dapat memperbarui revisi baru dari proyek jarak jauh.

Saya telah mencoba menggunakan git clone, tetapi ini menciptakan salinan seluruh repositori (ukuran file besar), dan pelacakan perubahan membuat ruang disk lebih besar (100mb file sekarang membutuhkan lebih dari 2gb).

Saya tidak akan mengirimkan tambalan, dan saya tidak perlu sejarah. Saya hanya ingin versi terbaru seperti di subversi.

Apakah ini mungkin di git?

yuit
sumber
2
Git 1.9 / 2.0 (Q1 2014) akan jauh lebih efisien dengan kloning dangkal: stackoverflow.com/a/21217267/6309 dan stackoverflow.com/a/21217326/6309
VonC

Jawaban:

552

Gunakan --depthopsi di git clone:

Buat klon dangkal dengan riwayat terpotong ke jumlah komit yang ditentukan.

contoh: git clone --depth=1 <remote_repo_url>

Greg Hewgill
sumber
87
contoh:git clone --depth=1 <remote_repo_url>
iDev247
14
Sejak melakukan 82fba2b di git 1.9, batasan ini tidak ada lagi.
niutech
1
Keterbatasan apa?
Bodoh
4
@Riangles: Keterbatasan (tidak ada lagi saat ini): Repositori dangkal memiliki sejumlah keterbatasan (Anda tidak dapat mengkloning atau mengambil darinya, atau mendorong dari atau ke dalamnya), tetapi cukup jika Anda hanya tertarik pada sejarah besar baru-baru ini memproyeksikan dengan sejarah panjang, dan ingin mengirim perbaikan sebagai tambalan.
odinho
1
Opsi ditambahkan digit 1.8.4 .
ivan_pozdeev
79

Solusi alternatif untuk melakukan clone dangkal ( git clone --depth=1 <URL>) adalah, jika pihak jauh mendukungnya, untuk menggunakan --remoteopsi arsip git :

$ git archive --format=tar --remote=<repository URL> HEAD | tar xf -

Atau, jika repositori jarak jauh yang dimaksud meramban dapat menggunakan beberapa antarmuka web seperti gitweb atau GitHub, maka ada kemungkinan ia memiliki fitur 'snapshot', dan Anda dapat mengunduh versi terbaru (tanpa informasi versi) dari antarmuka web.

Jakub Narębski
sumber
4
Solusi ini tidak akan memenuhi persyaratan ini: "Saya ingin dapat memperbarui revisi baru dari proyek jarak jauh". Karena pada dasarnya mengunduh arsip, itu tidak akan dapat dengan cepat memajukan satu atau dua komit. "Klon dangkal" memungkinkan itu. Namun, saya kira solusi ini memiliki kasus penggunaannya, jadi layak disebut.
VasiliNovikov