कैसे एक git क्लोन --mirror अपडेट करें?


144

मैंने एक लाइव साइट को मिरर करने के लिए एक git रिपॉजिटरी बनाई है (जो एक नंगे नंगे git रिपॉजिटरी है):

git clone --mirror ssh://user@example.com/path/to/repo

अब, इस दर्पण क्लोन को अपने दूरस्थ मूल से सभी परिवर्तनों के साथ अद्यतन रखने के लिए, मुझे किस कमांड या कमांड का उपयोग करना चाहिए?

मैं सब कुछ अपडेट रखना चाहता हूं: कमिट, रेफ, हुक, ब्रांच आदि।

धन्यवाद!

जवाबों:


213

यह वह आदेश है जिसे आपको दर्पण पर निष्पादित करने की आवश्यकता है:

git remote update

@ मैगनस स्कॉग: शानदार। धन्यवाद! क्या यही सब है? क्या मुझे एक और कमांड की आवश्यकता है, जैसे git fetch? या git remote updateअकेले यह सब करेंगे?
जे। ब्रूनी

11
मैं यह भी जानना चाहूंगा कि भ्रूण लाने के लिए क्या अंतर है।
थोरबजोरन रेव एंडरसन

1
@ Thorbjörn (आपको एक सनी ö :) के साथ करना होगा): Git लाने से दूरस्थ से दूरस्थ संदर्भ के साथ अपने भंडार को अपडेट करता है। यह कमांड मिरर किए गए रिपॉजिटरी पर सब कुछ अपडेट करता है।
राल्फथेंनिजा

4
यहाँ एक अच्छा जवाब है जो और अधिक व्याख्या करता है: stackoverflow.com/questions/3959924/…
ralphtheninja

16
'git रिमोट अपडेट --prune' यह सब करेगा, लेकिन मूल रिपॉजिटरी से हटाए जाने पर शाखाओं को हटा दें।
teeks99

8

कमिट्स, रेफ्स, ब्रांच और " एट सेटेरा " के बारे में मैग्नस का जवाब सिर्फ काम करता है ( git remote update)।

लेकिन दुर्भाग्य से clone/ दर्पण / update हुक का कोई रास्ता नहीं है , जैसा कि मैं चाहता था ...

मैंने इस बहुत ही रोचक सूत्र को क्लोनिंग / हुकिंग मिररिंग के बारे में पाया है:

http://kerneltrap.org/mailarchive/git/2007/8/28/256180/thread

मैंने सीखा:

  • हुक को रिपॉजिटरी सामग्री का हिस्सा नहीं माना जाता है।

  • .git/descriptionफ़ोल्डर की तरह अधिक डेटा है, जो हुक के रूप में क्लोन नहीं किया जाता है।

  • hooksडिर में दिखने वाले डिफ़ॉल्ट हुक से आता हैTEMPLATE_DIR

  • templateगिट पर यह दिलचस्प विशेषता है।

इसलिए, मैं या तो इस "क्लोन हुक बात" को अनदेखा कर सकता हूं, या एक rsyncरणनीति के लिए जा सकता हूं, मेरे दर्पण के उद्देश्यों (अन्य क्लोनों के लिए बैकअप + स्रोत) को देखते हुए।

खैर ... मैं सिर्फ हुक क्लोनिंग के बारे में भूल जाऊंगा, और git remote updateरास्ते से चिपका रहूंगा ।

  • सेह ने अभी बताया है कि न केवल "हुक" को clone/ updateप्रक्रिया द्वारा प्रबंधित नहीं किया जाता है, बल्कि स्टैड्स, रेयर, आदि ... इसलिए, एक सख्त बैकअप के लिए, rsyncया समकक्ष वास्तव में जाने का रास्ता होगा। जैसा कि मेरे मामले में यह वास्तव में आवश्यक नहीं है (मैं हुक, स्टैड और इतने पर नहीं कर सकता), जैसे मैंने कहा था, मैं छड़ी करूंगा remote update

धन्यवाद! मेरे अपने "गिट-फू" में थोड़ा सुधार हुआ ... :-)


5

यहाँ देखें: Git बाद वाले क्लोन पर सभी शाखाओं को क्लोन नहीं करता है?

यदि आप वास्तव में इसके बजाय शाखाओं को खींचकर ऐसा चाहते हैं push --mirror, तो आप यहां देख सकते हैं:

"लेट - हॉल" एक गिट नंगे भंडार में स्थानीय शाखाओं को दूरस्थ लोगों के लिए सिंक्रनाइज़ नहीं किया जाता है

यह उत्तर उस अपेक्षाकृत आसानी से प्राप्त करने के बारे में विस्तृत कदम प्रदान करता है:


1
pushमेरे लिए एक विकल्प नहीं है क्योंकि मुझे इसे प्राप्त करने की ओर (जहां क्लोन है) से करने की आवश्यकता है; pullयह भी एक विकल्प नहीं है क्योंकि दर्पण रिपॉजिटरी एक नंगे भंडार (कोई काम करने वाला पेड़ नहीं है, इस प्रकार कोई "पुल" नहीं है) - ऐसा लगता है कि git remote updateवास्तव में यह सब (संदर्भित उत्तर की तुलना में बहुत आसान है) ... वैसे भी, धन्यवाद! निश्चित रूप से जुड़े हुए प्रश्नों / उत्तरों में बहुमूल्य जानकारी है।
जे। ब्रुनी

1
ठीक है, मेरा मतलब था कि हमेशा की तरह परलोक में खींचो। पुश और प्रौद्योगिकी खींचो। निरर्थक शब्द को छोड़कर शायद ही कोई दूसरा शब्द है 'ग्राहक को रिमोट से सक्रिय रूप से डेटा प्राप्त करें' जो ऐसे शब्द को डब नहीं करेगा जिसका अर्थ गिट या डीवीसीएस सिस्टम से है :) दूसरा लिंक आपको इच्छित विवरण प्रदान करेगा। ध्यान दें, कि 'Git दूरस्थ अद्यतन' करता नहीं वास्तव में अतिरिक्त कार्यों के बिना 'मिरर' स्थिति बनाए रखने का उल्लेख वहाँ
sehe

1
हम्म ... सॉरी (HTH) - ऐसा लगता है कि एक "निरपेक्ष" दर्पण अधिक आसानी से मूल रेपो फ़ोल्डर के एक सरल "rsync" के माध्यम से प्राप्त किया जाता है ... मैं जो चाहता था, लेकिन नहीं .. मैंने अभी कुछ परीक्षण किए ... और हुक की नकल करने के लिए कुछ भी नहीं लगता है - जो मुझे विशेष रूप से दिलचस्पी है ...
जे। ब्रुनी

1
FYI करें, इस दर्पण के उद्देश्य ये हैं, केवल: 1) पूर्ण बैकअप जहां से मैं पुनर्स्थापित कर सकता हूं यदि मूल रेपो सर्वर का डेटा खो गया है; 2) कहीं और से जहां से कोई भी क्लोन कर सकता है और एक स्थानीय वर्किंग रेपो प्राप्त कर सकता है, मूल स्रोत रेपो तक कोई पहुंच के बिना
जे। ब्रूनी

1
यदि आप हुक और सब कुछ चाहते हैं, तो गिटोसिस हो सकता है (अच्छी तरह से याद नहीं है) आपके पास क्या है, लेकिन मुझे rsyncउस मामले में जाना चाहिए । इसके अलावा, मुझे लगता है कि आप भूलों के बारे में भूल रहे हैं ( यहाँ देखें ) और जानकारी भी ...?
'13:01
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.