Belirli bir etiketi klonlamak için git


192

Gönderen git-klonu (1) Elle Sayfa

--branch ayrıca etiket alabilir ve HEAD'ı sonuçtaki depoda bu taahhütte ayırabilir.

denedim

git clone --branch <tag_name> <repo_url>

Ama bu çalışmıyor. Döndürür:

warning: Remote branch 2.13.0 not found in upstream origin, using HEAD instead

Bu parametre nasıl kullanılır?



2
Haklısın, ama küçük fark. Bu soruyu sorduğumda, benim durumumda, bunu tek bir satırda yapmam gerekiyordu ve kullanmalıydım cloneve 'neden --branch işe yaramadı'. Bu URL'nin en iyi yanıtı clone-> checkout, sorumu çözemedi. :)
Jiang Haziran

Yanıtlar:


328
git clone --depth 1 --branch <tag_name> <repo_url>

--depth 1 isteğe bağlıdır, ancak yalnızca bir revizyonda duruma ihtiyacınız varsa, muhtemelen tüm revizyona kadar tüm geçmişi indirmeyi atlamak istersiniz.


92
Bilginize: --depth 1Geçerli olmayan taahhütlerin indirilmesini önlemek için de belirtiniz .
Acumenus

1
Git 1.8.4.1
taco

Bu işe yaramıyor. Sonra klon yaparsanız git taghiçbir etiket gösterir
şapka ile kullanıcı

Ref belirsizse ve bir dal ve aynı adı taşıyan bir etiketiniz varsa, bunun da dalı tercih edeceğini unutmayın.
Keith Smiley

1
Mevcut olmayan taahhüt nedir?
d512

74

Yalnızca etiketin ucuna giden geçmişi klonlamak--single-branch için bu seçeneği kullanın . Bu, gereksiz kodların çoğaltılmasını önler.

git clone <repo_url> --branch <tag_name> --single-branch

3
--single-branchdenk --depth 1?
Igracia

14
Hayır, eşdeğer değil. - tek dal tüm dalın tarihini klonlar. --Depth 1 ile hiçbir tarih klonlanmaz.
Martin Krung

2
Ayrıca kullanıldığında --single-branchda ima edilir --depth. KılavuzdanWhen creating a shallow clone with the --depth option, this is the default
koda

33
git clone -b 13.1rc1-Gotham  --depth 1  https://github.com/xbmc/xbmc.git
Cloning into 'xbmc'...
remote: Counting objects: 17977, done.
remote: Compressing objects: 100% (13473/13473), done.
Receiving objects:  36% (6554/17977), 19.21 MiB | 469 KiB/s    

Şundan daha hızlı olacak:

git clone https://github.com/xbmc/xbmc.git
Cloning into 'xbmc'...
remote: Reusing existing pack: 281705, done.
remote: Counting objects: 533, done.
remote: Compressing objects: 100% (177/177), done.
Receiving objects:  14% (40643/282238), 55.46 MiB | 578 KiB/s

Veya

git clone -b 13.1rc1-Gotham  https://github.com/xbmc/xbmc.git
Cloning into 'xbmc'...
remote: Reusing existing pack: 281705, done.
remote: Counting objects: 533, done.
remote: Compressing objects: 100% (177/177), done.
Receiving objects:  12% (34441/282238), 20.25 MiB | 461 KiB/s

6
--depth 1bir mücevher, birçok kişi sadece kullanmak için bütün git geçmişini indirin HEAD.
MGP

2
--depth 1varsayılan yapılmalı; Birisi önceki bir taahhüdü kesmeye çalışırsa, geri kalanını indirmesi istenir.
Jikku Jose

3

Komutu kullanın

git clone --help

Git'in komutu destekleyip desteklemediğini görmek için

git clone --branch tag_name

Değilse, aşağıdakileri yapmanız yeterlidir:

git clone repo_url 
cd repo
git checkout tag_name

1

Belirli bir etiketi kopyalamak, 'ayrılmış HEAD' durumunu döndürebilir .

Geçici bir çözüm olarak, önce repoyu klonlamaya çalışın ve ardından belirli bir etiketi kullanıma alın. Örneğin:

repo_url=https://github.com/owner/project.git
repo_dir=$(basename $repo_url .git)
repo_tag=0.5

git clone --single-branch $repo_url # using --depth 1 can show no tags
git --work-tree=$repo_dir --git-dir=$repo_dir/.git checkout tags/$repo_tag

Not: Git 1.8.5'ten beri ve -C <path>yerine kullanabilirsiniz .--work-tree--git-dir

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.