एक विशिष्ट टैग क्लोन कैसे करें


190

से Git क्लोन (1) मैनुअल पृष्ठ

--branch टैग भी ले सकते हैं और इसके परिणामस्वरूप भंडार में उस प्रतिबद्ध को कम कर सकते हैं।

मैंने कोशिश की

git clone --branch <tag_name> <repo_url>

लेकिन यह काम नहीं करता है। यह रिटर्न:

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

इस पैरामीटर का उपयोग कैसे करें?



2
आप सही हैं, लेकिन थोड़ा अंतर है। जब मैं यह सवाल पूछता हूं, तो मेरी स्थिति में, मुझे इसे एक पंक्ति में करने की आवश्यकता है और इसका उपयोग करना होगा clone, और मैं 'क्यों - काम नहीं करता' पर अटक गया था। उस url का सबसे अच्छा उत्तर clone-> checkout, जो मेरे प्रश्न को हल नहीं कर सकता है। :)
जियांग जून

जवाबों:


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

यह कमांड git 1.7.9.5 में समर्थित नहीं है।

मैं 1.8.3.5 git का उपयोग करता हूं और यह काम करता है


90
FYI करें: --depth 1किसी भी गैर-वर्तमान आवागमन को डाउनलोड करने से बचने के लिए भी निर्दिष्ट करें ।
एक्यूमेनस

1
Git 1.8.4.1 में ठीक काम करता है
टैको

यह काम नहीं करता है। क्लोन के बाद अगर आप ऐसा करते हैं git tagतो कोई टैग नहीं दिखता है
The user with no hat

ध्यान दें कि यदि रेफ अस्पष्ट है और आपके पास एक शाखा है और उसी नाम का टैग है, तो यह शाखा को पसंद करेगा।
कीथ स्माइली

1
एक गैर-वर्तमान प्रतिबद्ध क्या है?
d512

74

टैग के टिप पर जाने के--single-branch लिए केवल क्लोन इतिहास के विकल्प का उपयोग करें । यह बहुत सारे अनावश्यक कोड को क्लोन होने से बचाता है।

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

3
के --single-branchबराबर है --depth 1?
.ग्रेसिया

14
नहीं, इसके समकक्ष नहीं है। -सिंगल-ब्रांच इतिहास को पूरी ब्रांच के लिए क्लोन करता है। --Depth 1 के साथ किसी भी इतिहास को क्लोन नहीं किया गया है।
मार्टिन क्रुंग

2
इसके अलावा --single-branchजब निहित है --depthप्रयोग किया जाता है। मैनुअल सेWhen creating a shallow clone with the --depth option, this is the default
कोडा

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    

से तेज़ होगा:

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

या

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 1एक रत्न है, इतने सारे लोग सिर्फ उपयोग करने के लिए पूरे इतिहास को डाउनलोड करते हैं HEAD
एमजीपी

2
--depth 1डिफ़ॉल्ट बनाया जाना चाहिए; अगर कोई पिछली कमिट को चेटआउट करने की कोशिश करता है, तो उन्हें बाकी डाउनलोड करने के लिए प्रेरित किया जाना चाहिए।
जिक्कू जोस

3

कमांड का उपयोग करें

git clone --help

यह देखने के लिए कि आपका गिट कमान का समर्थन करता है या नहीं

git clone --branch tag_name

यदि नहीं, तो बस निम्नलिखित करें:

git clone repo_url 
cd repo
git checkout tag_name

1

एक विशिष्ट टैग का क्लोनिंग, 'अलग किया गया राज्य' लौटा सकता है ।

वर्कअराउंड के रूप में, पहले रेपो को क्लोन करने का प्रयास करें, और फिर एक विशिष्ट टैग चेकआउट करें। उदाहरण के लिए:

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

नोट: Git 1.8.5 के बाद से , आप -C <path>इसके बजाय --work-treeऔर का उपयोग कर सकते हैं --git-dir

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.