2010-08-05 15 views
16

मेरे पास मेरे सर्वर पर गिटोसिस चल रहा है। मेरे निर्माण प्रणाली को गिटोसिस से कोड की प्रति प्राप्त करने की आवश्यकता है। अभी मैं पूरे भंडार को क्लोन करता हूं, जिसमें काफी समय लगता है।मैं सिर्फ गिटोसिस से सिर कैसे प्राप्त करूं?

मैं सिर्फ शाखा के प्रमुख कैसे प्राप्त करूं? (मैंने गिट आर्काइव की कोशिश की है, लेकिन गिटोसिस से एक संग्रह प्राप्त नहीं हो सकता है।)

क्या मैं एक नंगे भंडार से एक संग्रह बना सकता हूं?

+0

[Git का उपयोग सिर्फ नवीनतम संशोधन प्राप्त करने के लिए] की संभावित डुप्लिकेट (http://stackoverflow.com/questions/1209999/using-git-to-get-just-the-latest-revision) – radistao

उत्तर

26

--depth=1git clone पर केवल HEAD प्रतिबद्धता प्राप्त करने के लिए ध्वज पास करें। यह एक "उथले क्लोन" बनाता है। ध्यान दें कि एक उथले क्लोन के साथ सीमाएं हैं: आप पूर्ण इतिहास नहीं प्राप्त कर सकते हैं (जाहिर है), आप इसे क्लोन या खींच नहीं सकते हैं, और आप इससे धक्का नहीं दे सकते।

+1

यह काम करता है लेकिन अगर पुल काम नहीं करता है तो आरएम और फिर क्लोन के बिना मुख्य भंडार के साथ सिंक कैसे करें? – Antonello

+0

@ एंटोनेलो: यदि आपको सिंक में रहने की आवश्यकता है, तो आपको पूरे रेपो को क्लोन करना चाहिए। – mipadi

0

मैंने अभी एक टेस्ट नंगे रेपो बनाया है और हां, आप एक नंगे भंडार से एक संग्रह बना सकते हैं।

$ cd /tmp/foo.git/ 
$ git archive --output=/tmp/foo.tgz HEAD 
0

कि क्या दूरस्थ पक्ष संग्रह समर्थन सक्षम आधार पर, आप की कोशिश कर सकते हैं:

git archive --remote=git://git.example.com/repo.git --output=repo.zip HEAD 

लेकिन तुम रहना होगा या तो SSH प्रोटोकॉल, या समर्थन के माध्यम से भंडार का उपयोग करने के लिए इस हो गया है सक्षम git daemon में स्पष्ट रूप से सक्षम है, इसलिए यह दुर्लभ है।

+0

मैं दूरस्थ पक्ष पर संग्रह समर्थन कैसे सक्षम करूं? और यह शायद ही कभी सक्षम क्यों है, क्या इसके साथ कुछ खतरा है? – ablerman

+0

'git: //' प्रोटोकॉल के माध्यम से पहुंच के लिए, कमांड लाइन जो 'git daemon' (inetd, xindetd, आदि में) को आमंत्रित करती है, में' --enable = upload-archive' होना चाहिए; आप ** दूरस्थ भंडार ** –

+0

में सत्य के लिए 'daemon.uploadarch' को बस सेट करने का प्रयास भी कर सकते हैं: क्या गिटोसिस समर्थन गिट: //? – ablerman

2

गिटोसिस अभी तक गिट-आर्काइव, AFAIS का समर्थन नहीं करता है। http://eagain.net/gitweb/?p=gitosis.git;a=commitdiff;h=refs/heads/remote-archive पर संबंधित शाखा विलय नहीं हुई है।

तो आप अभी तक "गिट आर्काइव --remote = git: //git.example.com/repo.git ..." का उपयोग नहीं कर सकते हैं।

+0

ध्यान दें कि आपके द्वारा उल्लेख किया गया पैच स्वयं को लागू करना बहुत आसान है। मैंने यह अपने उबंटू सर्वर पर किया और यह आकर्षण की तरह काम करता है। मैं अब 'गिट-आर्काइव - रिमोट' कर सकता हूं जो मैं चाहता हूं! :) –

संबंधित मुद्दे