Pertanyaan Unduh tag spesifik dengan Git


Saya mencoba mencari tahu bagaimana saya dapat mengunduh tag tertentu dari repositori Git - ini adalah salah satu versi di belakang versi saat ini.

Saya melihat ada tag untuk versi sebelumnya di halaman web git, dengan nama objek dari angka hex yang panjang.

Tapi nama versinya adalah "Tagged release 1.1.5"Menurut situs tersebut.

Saya mencoba perintah seperti ini (dengan nama berubah):

git clone http://git.abc.net/git/abc.git my_abc

Dan saya mendapatkan sesuatu - direktori, sekelompok subdirektori, dll.

Jika seluruh repositori, bagaimana saya mendapatkan versi yang saya cari? Jika tidak, bagaimana cara mengunduh versi khusus itu?


1657
2018-04-27 01:15


asal


Jawaban:


$ git clone

akan memberi Anda seluruh repositori.

Setelah kloning, Anda bisa daftar tag dengan $ git tag -l lalu checkout tag tertentu:

$ git checkout tags/<tag_name>

Bahkan lebih baik, checkout dan membuat cabang (jika tidak, Anda akan berada di cabang yang dinamai setelah nomor revisi tag):

$ git checkout tags/<tag_name> -b <branch_name>

2555
2018-04-27 01:53



git clone --branch my_abc http://git.abc.net/git/abc.git

Akan mengkloning repo dan meninggalkan Anda pada tag yang Anda minati.

Dokumentasi untuk 1.8.0 dari git clone menyatakan.

--branch juga dapat mengambil tag dan melepaskan HEAD pada yang melakukan di repositori yang dihasilkan.


267
2018-06-14 09:33



Saya bukan ahli git, tapi saya rasa ini harus bekerja:

git clone http://git.abc.net/git/abc.git
cd abc
git checkout my_abc 

ATAU

git clone http://git.abc.net/git/abc.git
cd abc
git checkout -b new_branch my_abc

Variasi kedua menetapkan cabang baru berdasarkan pada tag, yang memungkinkan Anda menghindari 'HEAD HEAD'. (git-checkout manual)

Setiap git repo berisi seluruh riwayat revisi, jadi kloning repo memberi Anda akses ke commit terbaru, ditambah semua yang datang sebelumnya, termasuk tag yang Anda cari.


94
2018-04-27 01:54



Untuk hanya memeriksa tag yang ditentukan untuk penerapan, saya menggunakan misalnya:

git clone -b 'v2.0' --single-branch --depth 1 https://github.com/git/git.git

Ini tampaknya merupakan cara tercepat untuk memeriksa kode dari repositori jarak jauh jika seseorang hanya tertarik pada kode terbaru daripada di repositori lengkap. Dengan cara ini, ia menyerupai perintah 'svn co'.


85
2017-07-28 02:35



Anda dapat menggunakan arsip git untuk mengunduh bola tar untuk tag tertentu atau ID komit:

git archive --format=tar --remote=[hostname]:[path to repo] [tag name] > tagged_version.tar

Anda juga dapat mengekspor arsip zip dari sebuah tag.

  1. Daftar tag:

    git tag
    
    0.0.1
    0.1.0
    
  2. Ekspor tag:

    git archive -o /tmp/my-repo-0.1.0.zip --prefix=my-repo-0.1.0/ 0.1.0
    
  3. Catatan:

    • Anda tidak perlu menentukan formatnya. Ini akan diambil oleh nama file output.
    • Menentukan awalan akan membuat kode Anda diekspor ke direktori (jika Anda menyertakan garis miring di belakang).

71
2017-12-09 21:46



Menggunakan --single-branch beralih  (tersedia pada Git 1.7.10). Sintaksnya adalah:

git clone -b <tag_name> --single-branch <repo_url> [<dest_dir>] 

Sebagai contoh:

git clone -b 'v1.9.5' --single-branch https://github.com/git/git.git git-1.9.5

Manfaat: Git akan menerima objek dan (perlu) menyelesaikan delta untuk cabang / tag tertentu saja - sambil memeriksa jumlah file yang sama persis! Tergantung pada repositori sumber, ini akan menghemat banyak ruang disk. (Plus, itu akan jauh lebih cepat.)


40
2018-06-25 06:28



pertama ambil semua tag di remote tertentu

git fetch <remote> 'refs/tags/*:refs/tags/*'

atau hanya cukup mengetik

git fetch <remote>

Kemudian periksa tag yang tersedia

git tag -l

kemudian beralih ke tag spesifik menggunakan perintah di bawah ini

git checkout tags/<tag_name>

Semoga ini akan membantu Anda!


21
2017-09-10 18:57