एक आधिकारिक गीथूब दर्पण बनाना


108

बाहरी git रिपॉजिटरी के लिए मैं एक github दर्पण कैसे बनाऊं, जैसे कि यह "वास्तविक दर्पण" के रूप में प्रकट होता है, उदाहरण के लिए, https://github.com/mirrors में ?

अब तक, मैंने एक दर्पण का उपयोग करके सेट किया:

cd /path/to/bare/repository
git remote add --mirror github git@github.com:user/repo.git

और कॉन्फ़िगर करें पोस्ट प्राप्त करने के लिए हुक प्राप्त करें git push --quiet github। इस तरह, हालांकि, गितुब दर्पण को नहीं पहचानता है।

किसी भी विचार यह कैसे करने के लिए github तरीका है, जैसे कि "मिररड्रेड" से रिपॉजिटरी नाम दिखाई देता है?


2
github.com/apache/libcloud मिरर किए गए रेपो का एक और उदाहरण, अपाचे एलओएल से
कॉलिन सु

जवाबों:


113

GitHub की सहायता टीम के साथ संवाद करने के आधार पर, मैंने पाया कि GitHub वर्तमान में उपयोगकर्ता के लिए इस फैशन में रिपॉजिटरी को दर्पण करने के लिए कोई प्रत्यक्ष तंत्र प्रदान नहीं करता है।

हालांकि, एक GitHub को रिपॉजिटरी के लिए इस सेवा को स्थापित करने के लिए कह सकता है जो एक संगठन का हिस्सा हैं। GitHub तब एक मौजूदा रिपॉजिटरी को इस तरह के दर्पण के रूप में कॉन्फ़िगर करता है और एक अंतराल में इससे खींचता है जो कि उनके पास मौजूद कुल दर्पणों की संख्या का एक फ़ंक्शन है।

EDIT : जैसा कि स्टुअर्ट बताते हैं, GitHub अब मनमाने ढंग से रिपॉजिटरी को मिरर करने के लिए अनुरोध स्वीकार नहीं करता है। एकमात्र शेष विकल्प वह समाधान है जो मैंने अपने प्रश्न में पोस्ट किया है, अर्थात, अपने GitHub रिपॉजिटरी में स्वचालित रूप से पुश करने के लिए पोस्ट-प्राप्त हुक का निर्माण करना।


9

Https://github.com/mirrors की वर्तमान सामग्री को देखते हुए , यह दिखाई देगा कि GitHub अब "आधिकारिक दर्पण" नहीं करता है, क्योंकि अधिकांश परियोजनाएं जो अपने कोड GitHub पर प्रतिबिंबित करना चाहती हैं, आज केवल इसके लिए एक संगठन बनाते हैं, जैसे कि यह स्वयं ही है।

यहाँ पर एक सुविधा अनुरोध भी है: https://github.com/isaacs/github/issues/415


वास्तव में, उनमें से कुछ में GitHub- मिररड रिपोज हैं। वे अभी भी करते हैं, लेकिन केवल अगर आप परियोजना के डेवलपर हैं, तो कोई "अनौपचारिक" दर्पण नहीं।
nyuszika7h

और जैसा कि वे कहते हैं, केवल संगठनों के लिए।
nyuszika7h


4

इम्पोर्टिंग ए गिट के अनुसार :

प्रदर्शन के प्रयोजनों के लिए, हम उपयोग करेंगे:

  • एक्सटरस नाम का एक बाहरी खाता
  • GitHub व्यक्तिगत उपयोगकर्ता खाता जिसका नाम ghuser है
  • एक GitHub रिपॉजिटरी का नाम repo.git है

कमांड लाइन:

# Makes a bare clone of the external repository in a local directory  
$ git clone --bare https://githost.org/extuser/repo.git

# Pushes the mirror to the new GitHub repository
$ cd *repo.git*
$ git push --mirror https://github.com/ghuser/repo.git

# Remove the temporary local repository.
$ cd ..
$ rm -rf repo.git

1
बीच क्या अंतर है git clone --bareऔर git clone --mirror? क्या दूसरा संस्करण यहाँ अधिक उपयुक्त नहीं है?
user7610

0

मैंने मध्यम सफलता के साथ जीथब-बैकअप नामक एक उपकरण का उपयोग किया है , यदि दर्पण नहीं है, तो कम से कम एक गीथूब उपयोगकर्ता या संगठन के पूर्ण बैकअप (मुद्दों और अन्य मेटाडेटा सहित) करें। README फाइल को उद्धृत करने के लिए :

हर बार जब आप जीथब-बैकअप चलाते हैं, तो यह GitHub पर कोई नया कांटा मिलेगा। यह जैसे नाम का उपयोग करके, कांटे के लिए अपने भंडार में रीमोट जोड़ देगा github_torvalds_subsurface। यह प्रत्येक कांटा से निकलेगा।

यह प्रत्येक कांटा से मेटाडेटा डाउनलोड करता है। इसे "जीथब" नामक शाखा में संग्रहीत किया जाता है। प्रत्येक कांटा को वहां एक निर्देशिका मिलती है, जैसे torvalds_subsurface। निर्देशिका के अंदर कुछ फाइलें होंगी, जैसे torvalds_subsurface/watchers। आगे की निर्देशिकाएं हो सकती हैं, जैसे टिप्पणियों के लिए torvalds_subsurface/comments/1:।

समय के साथ गिटहब पर क्या जानकारी बदली, यह देखने के लिए आप github शाखा के कमिट का अनुसरण कर सकते हैं।

गिटब शाखा में फ़ाइलों का प्रारूप वर्तमान में हास्केल क्रमबद्ध डेटा प्रकार है। यह सादा पाठ है, और पठनीय है, अगर आप इसे पढ़ते हैं।

सीमाओं में शामिल हैं:

  • कोई निजी रिपॉजिटरी समर्थन नहीं
  • सितारों, अनुयायियों, आदि की तरह कोई "सामाजिक" सामान नहीं
  • कमिट की पंक्तियों को नोट समर्थित नहीं हैं (फिर भी?)
  • लेबल जारी करें
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.