Memiliki riwayat revisi Git penuh memiliki banyak manfaat sebagai bagian dari proses pengembangan.
Tetapi produk kami adalah kode sumber, kami menggunakan bahasa skrip yang tidak memerlukan kompilasi atau pemrosesan, dan kemudian sejarah Git menjadi beban penerapan - dalam contoh kami, kami menerapkan lingkungan virtual yang bersih mengikuti setiap perubahan, memiliki beberapa penyebaran pada satu mesin.
Ada beberapa cara untuk mengurangi jumlah sejarah, misalnya klon dangkal yang efisiensinya tergantung pada seberapa dalam revisi di cabang, melakukan pengambilan alih-alih klon tetapi kemudian Anda masih mendapatkan sejarah dari revisi dan kembali, atau mendapatkan penuh Repo sekali lalu tarik ketika dibutuhkan tetapi ini boros dalam hal ruang disk dan cenderung kurang dapat diandalkan.
Apakah ada cara untuk mendapatkan satu revisi dari Git tanpa riwayatnya?
Jawaban:
Klon dangkal
Anda memang bisa mendapatkan klon dangkal dari Git menggunakan:
Ini masih akan mengkloning repo dan membuat
.git
folder dengan objek, hanya dalam ukuran lebih kecil (perbedaan tergantung pada ukuran file total Anda vs ukuran sejarah).Arsip git
Anda juga dapat menggunakan git-arsip untuk mengekstrak arsip repo:
Dalam contoh yang ditunjukkan misalnya:
Host Git, arsipkan API
Jika Anda meng-hosting repo Anda di GitHub, maka Anda dapat menggunakan API arsipnya :
https://api.github.com/repos/<username>/<repository>/zipball/<commit_hash>
Bitbucket.org memiliki fungsi yang sama untuk ini:
https://bitbucket.org/<username>/<repository>/get/<branch_name|commit_hash|tag>.zip
sumber
Jangan gunakan git repo Anda. Kembangkan metodologi penyebaran nyata. Bahkan jika itu semudah membuat arsip (= membangun artefak hanya dengan file yang diperlukan di dalamnya untuk digunakan) skrip yang digunakan.
Bahkan jika Anda akan mengkloning ujung repositori sumber Anda, Anda mungkin tidak memerlukan tes unit, dokumentasi, profil linting, dan ephemera pendukung lainnya di lingkungan yang Anda gunakan.
Catatan : untuk repositori bahasa skrip yang tidak benar-benar memiliki langkah "build", cara sepele untuk melepaskan artefak adalah dengan mengemasnya dalam arsip, seperti tar atau rpm. Kemudian, untuk "menyebarkan", Anda menghapus arsip atau menginstal rpm. ini menghilangkan kebutuhan untuk tool git dalam rantai penyebaran Anda (tidak semua server prod memiliki alat dev tersebut).
sumber
Untuk mendapatkan repositori, tidak ada cara, terutama karena tidak ada 'revisi'. Git store berkomitmen, yang merupakan perubahan dari kondisi sebelumnya.
Jika Anda ingin repositori pada titik waktu tertentu, Anda harus menarik komit saat ini dan semua leluhurnya atau Anda hanya akan mendapatkan perubahan yang dilakukan di komit.
Untuk menghindari kebingungan: Kloning dangkal mendapatkan sejarah yang diperlukan dan kemudian memotongnya untuk membebaskan ruang, pohon itu masih dibuat dari sejarah.
Untuk solusinya, jawaban @ 7ochem tidak mencakup mereka.
sumber