git fetch <gitserver> <remotetag>:<localtag>
===================================
Saya baru saja melakukan ini. Pertama saya memastikan saya tahu ejaan nama tag.
git ls-remote --tags gitserver; : or origin, whatever your remote is called
Ini memberi saya daftar tag pada server git saya untuk dipilih. Poster asli sudah tahu nama tag-nya sehingga langkah ini tidak diperlukan untuk semua orang. Outputnya terlihat seperti ini, meskipun daftar sebenarnya lebih panjang.
8acb6864d10caa9baf25cc1e4857371efb01f7cd refs/tags/v5.2.2.2
f4ba9d79e3d760f1990c2117187b5010e92e1ea2 refs/tags/v5.2.3.1
8dd05466201b51fcaf4ca85897347d82fcb29518 refs/tags/Fix_109
9b5087090d9077c10ba22d99d5ce90d8a45c50a3 refs/tags/Fix_110
Saya mengambil tag yang saya inginkan dan mengambilnya dan tidak lebih sebagai berikut.
git fetch gitserver Fix_110
Saya kemudian menandai ini di mesin lokal saya, memberi tag saya nama yang sama.
git tag Fix_110 FETCH_HEAD
Saya tidak ingin mengkloning repositori jarak jauh seperti yang disarankan orang lain, karena proyek yang saya kerjakan besar dan saya ingin berkembang dalam lingkungan bersih yang bagus. Saya merasa ini lebih dekat dengan pertanyaan awal "Saya mencoba mencari tahu bagaimana cara mengunduh A PARTICULAR TAG" daripada solusi yang menyarankan kloning seluruh repositori. Saya tidak melihat mengapa orang harus memiliki salinan kode sumber Windows NT dan Windows 8.1 jika mereka ingin melihat kode sumber DOS 0.1 (misalnya).
Saya juga tidak ingin menggunakan CHECKOUT seperti yang disarankan orang lain. Saya telah memeriksa cabang dan tidak ingin memengaruhi hal itu. Tujuan saya adalah untuk mengambil perangkat lunak yang saya inginkan sehingga saya bisa memilih sesuatu dan menambahkannya ke pengembangan saya.
Mungkin ada cara untuk mengambil tag itu sendiri daripada hanya salinan komit yang ditandai. Saya harus menandai komit yang diambil sendiri. EDIT: Ah ya, saya sudah menemukannya sekarang.
git fetch gitserver Fix_110:Fix_110
Di mana Anda melihat titik dua, itu adalah nama-jauh: nama lokal dan di sini mereka adalah nama tag. Ini berjalan tanpa mengganggu pohon yang bekerja dll. Sepertinya menyalin hal-hal dari remote ke mesin lokal sehingga Anda memiliki salinan Anda sendiri.
git fetch gitserver --dry-run Fix_110:Fix_110
dengan opsi --dry-run ditambahkan akan membiarkan Anda melihat apa yang akan dilakukan perintah, jika Anda ingin memverifikasi apa yang Anda inginkan. Jadi saya rasa sederhana
git fetch gitserver remotetag:localtag
adalah jawaban sebenarnya.
=
Catatan terpisah tentang tag ... Ketika saya memulai sesuatu yang baru saya biasanya menandai repositori kosong setelah git init, sejak itu
git rebase -i XXXXX
membutuhkan komit, dan pertanyaan muncul "bagaimana Anda rebase perubahan yang mencakup perubahan perangkat lunak pertama Anda?" Jadi ketika saya mulai bekerja saya lakukan
git init
touch .gitignore
[then add it and commit it, and finally]
git tag EMPTY
yaitu membuat komit sebelum perubahan nyata pertama saya dan kemudian digunakan
git rebase -i EMPTY
jika saya ingin rebase semua pekerjaan saya, termasuk perubahan pertama .