नोट: मेरा उदाहरण एक प्रतिबद्ध हैश द्वारा क्लोन करने में मदद नहीं करता है, लेकिन यह एक टैग क्लोन करने में मदद करेगा और एक हल्का भंडार होगा।
यदि आपको अपने "क्लोन" में केवल एक ही प्रतिबद्ध होना है और आप प्रतिबद्ध हैश का उपयोग करने जा रहे हैं, तो संक्षिप्त उत्तर नहीं है ।
मैं टैग्स के लिए इस कमांड कंस्ट्रक्शन ( v2.13.2.windows.1 पर परीक्षण ) का उपयोग करता हूं :
git clone --depth 1 git@github.com:VENDOR/REPO.git --branch 1.23.0 --single-branch
पूर्ण उदाहरण:
$ git clone --depth 1 git@github.com:Seldaek/monolog.git --branch 1.23.0 --single-branch
Cloning into 'monolog'...
remote: Counting objects: 201, done.
remote: Compressing objects: 100% (188/188), done.
remote: Total 201 (delta 42), reused 32 (delta 5), pack-reused 0
Receiving objects: 100% (201/201), 190.30 KiB | 0 bytes/s, done.
Resolving deltas: 100% (42/42), done.
Note: checking out 'fd8c787753b3a2ad11bc60c063cff1358a32a3b4'.
You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by performing another checkout.
If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:
git checkout -b <new-branch-name>
$ cd monolog
.git
dir का आकार ( 267K बनाम 2.6M पूर्ण का उपयोग करके clone
):
$ du -h --max-depth=0 .git
267K .git
मैं निरूपित करना चाहूंगा, --branch
एक टैग / शाखा ले सकता हूं ।
https://git-scm.com/docs/git-clone#git-clone---branchltnamegt
--branch
टैग भी ले सकता है और इसके परिणामस्वरूप भंडार में उस प्रतिबद्ध को कम कर सकता है।
युपीडी
संक्षेप में, यह "रेफ्स" ले सकता है। आप यहां और अधिक पढ़ सकते हैं: "त्रुटि सर्वर अनजान वस्तु के लिए अनुरोध की अनुमति नहीं देता है" का क्या मतलब है?
इसके अलावा, कोई चाल नहीं है:
git fetch --depth 1 origin <COMMIT_HASH>
मेरी गलती में मुझे इंगित करने के लिए @BenjiWiebe धन्यवाद।