GitHub की तरह Git Server? [बन्द है]


412

मैं एक लंबे समय से तोड़फोड़ करने वाला उपयोगकर्ता हूं जो Git को आज़माने जा रहा है। मैंने इसके बारे में कुछ पढ़ा है और वितरित प्रकृति को समझा है - मैं बहुत सारे लाभ देख सकता हूं।

हालांकि, मैं एक केंद्रीय सर्वर के विचार को पसंद करता हूं जो बैकअप की भूमिका, रिकॉर्ड की प्रणाली, आदि ले सकता है, जबकि अभी भी अपने स्थानीय ब्रांचिंग और साझा करने के लिए गिट का उपयोग कर रहा हूं। मैं एक ओपन सोर्स प्रोजेक्ट नहीं कर रहा हूं, इसलिए मैं गितुब (भुगतान किए बिना) का उपयोग नहीं कर सकता, इसलिए मेरा सवाल वास्तव में है: स्थानीय गिट सर्वर को चलाने के लिए सबसे अच्छा अभ्यास तरीका क्या है?

मुझे लगता है कि यह मानक गिट उपयोग पैटर्न के खिलाफ हो सकता है, लेकिन यह मेरी परियोजना के लिए उपयोगी होगा। हालांकि, मेरी कोई भी चिंता हमेशा के लिए स्वागत योग्य है।

धन्यवाद!


50
एक केंद्रीकृत सर्वर का उपयोग कर के रूप में आप यह वर्णन है वास्तव में वितरित संस्करण नियंत्रण प्रणाली के लिए एक मानक के उपयोग पैटर्न, ताकि के बारे में चिंता मत करो। :-)
आमसुंड एल्डहुसेट

8
आह - सोचा कि यह अधिक अपवाद था। बंद करना चाहता था "यदि आपके पास केंद्रीकरण है तो आप इसे प्राप्त नहीं करते हैं!" टिप्पणियाँ। धन्यवाद।
skaz

27
एक उचित विचार। :-) मेरी समझ में, वितरित वीसीएस का बड़ा बिंदु यह नहीं है कि आपके पास केंद्रीय रेपो नहीं है (यह अक्सर अत्यधिक उपयोगी होता है), बल्कि यह कि आप केंद्रीय रेपो का उपयोग करने के लिए मजबूर नहीं हैं - आप प्रदर्शन कर सकते हैं स्थानीय कमिट्स, और यदि आवश्यक हो तो विशिष्ट लोगों के साथ संशोधन करना आसान है, और आपके पास कई "केंद्रीय" प्रतिनिधि (किसी भी अन्य रेपो में, चाहे वह कोई भी भूमिका हो, रिमोट कहलाता है , और आप कर सकते हैं) जितने चाहें, उतने जोड़ें)। और डीवीसीएस की अक्सर बहुत लचीली शाखाएं होती हैं (यहां चमकता है)।
अनसमुंड एल्डहुसेट

15
Aasmund की टिप्पणी को संक्षेप में प्रस्तुत करने के लिए: एक DVCS का बिंदु अक्सर केंद्रीकृत भंडार के साथ नहीं करना है, बल्कि VCS की पूरी शक्ति के साथ हर एक अन्य उपयोगकर्ता को भी प्रदान करना है।
कास्कैबेल

2
Google के पास एक नया क्लाउड स्रोत रिपॉजिटरी है, जो निजी रिपॉजिटरी की अनुमति देता है: Cloud.google.com/tools/cloud-repositories इसके अलावा, FWIW, यह निश्चित नहीं है कि यह विषय के रूप में चिह्नित क्यों है!
जोश एम।

जवाबों:


203

आप बस एक ssh सर्वर सेट कर सकते हैं और वहां एक केंद्रीय भंडार चला सकते हैं। सभी डेवलपर्स तब केवल सर्वर को पुश करने के लिए सहमत होते हैं (नीति के मामले के रूप में) जब वे किए जाते हैं। यह मेरे कार्यस्थल पर उपयोग का पैटर्न है। बहुत सीवीएस और एसवीएन-जैसे।

  1. रिपॉजिटरी लगाने के लिए कहीं और खोजें ( /var/gitrootउदाहरण के लिए)।
  2. एक नया रेपो ( mkdir project.git && cd project.git && git init --bare --shared=group) बनाएँ ।
  3. फिर अपने ग्राहक पर, दूरस्थ रेपो ( git clone ssh://yourserver.com/var/gitroot/project.git && cd project) क्लोन करें
  4. कुछ फ़ाइलें जोड़ें ( git add README)
  5. प्रतिबद्ध ( git commit -m "Initial import"),
  6. धक्का ( git push origin master)

यह आपके लिए चीजें सेट करना चाहिए।


5
बस इसलिए मैं स्पष्ट हूं: दूसरे (सुलभ) सर्वर पर गिट स्थापित करें और रेपो बनाएं। क्लाइंट के पास रेपो है। जब एक क्लाइंट एक फिक्स पूरा करता है, तो सर्वर रेपो तक पुश करें। धन्यवाद!
स्केज

8
+1। तथ्य की बात के रूप में, यह है Git के सहयोगी उपयोग के लिए उपयोग पैटर्न।
अनुस्मंद एल्डहुस्त

1
मूल गुरु को धक्का देने पर यह त्रुटि हुई :::: गिनती की वस्तुएं: 3, किया। लेखन वस्तुएं: 100% (3/3), 244 बाइट्स | 0 बाइट्स / एस, किया। कुल 3 (डेल्टा 0), पुन: उपयोग किया गया 0 (डेल्टा 0) रिमोट: त्रुटि: रिपॉजिटरी डेटाबेस में ऑब्जेक्ट जोड़ने के लिए अपर्याप्त अनुमति ।/objects रिमोट: घातक: ऑब्जेक्ट त्रुटि लिखने में विफल: अनपैक विफल: अनपैक-ऑब्जेक्ट्स असामान्य निकास ssh: //localhost/var/gitroot/project.git! [रिमोट रिजेक्टेड] मास्टर -> मास्टर (अनपैपर एरर) एरर: कुछ रिफ को 'ssh: //localhost/var/gitroot/project.git' पर धकेलने में असफल रहा
एबडो

3
मैंने कुछ समय पहले एक स्थानीय गिट रेपो सेटअप करने के तरीके के बारे में एक ब्लॉग पोस्ट लिखा है । यह अधिकतम 10 मिनट है। हार्ड चीज उचित लोकल-सर्वर बैकअप स्ट्रैटेजी सेट कर रही है, सर्वर को एडमिनिस्ट्रेट कर रही है, आदि
atmosx

क्या आप बस नहीं चला सकते git init --bare project.git?
डैन डस्केल्सस्कु

199

Gitorious एक खुला स्रोत वेब इंटरफ़ेस है जिसे आप अपने स्वयं के सर्वर पर चला सकते हैं, जैसे github:

http://getgitorious.com/

अपडेट करें:

http://gitlab.org/ अब एक और विकल्प है।

अपडेट 2:

GitorLab अब GitLab के साथ जुड़ गया है


5
अच्छा लग रहा है, लेकिन सेटअप भारी-वजन वाला लगता है (एक गैर-रेल उपयोगकर्ता के लिए esp) [ cjohansen.no/en/ruby/setting_up_gitorious_on_your_own_server ]
Gatoatigrado

1
स्थापना प्रक्रिया को बहुत सरल बनाने और कम "रेल्स-वाई" बनाने की प्रक्रिया में है। वहाँ भी CentOS सर्वर (और एक prebuilt उपकरण) के लिए एक स्वचालित इंस्टॉलर getgitorious.com पर Gitorious पृष्ठ पर उपलब्ध है।
थोमनिल

3
ऐसा लगता है कि Gitorious अब फ्री ओपन सोर्स प्राइवेट होस्टिंग सॉल्यूशन नहीं है।
मिंगमिंग

1
यदि आप getgitorious.com पर जाते हैं और इंस्टालर को Gitorious कम्यूनिटी एडिशन के तहत क्लिक करते हैं, तो क्या यह आपको फ्री ओपन सोर्स प्राइवेट होस्टिंग सॉल्यूशन नहीं देता है?
क्रेग

16
इसके अलावा gitlab.org एक अन्य विकल्प है जो मेरे उत्तर के बाद से विकसित किया गया है।
क्रेग

74

प्रयास करें GitLab

सबसे अच्छा गिट GUI उपकरण जो मैंने कभी इस्तेमाल किया है। यह GitHub से काफी मिलता-जुलता है।

यह ओपन सोर्स (MIT लाइसेंस) है और 25.000 से अधिक इंस्टॉलेशन के साथ सबसे स्थापित git मैनेजमेंट सॉफ्टवेयर है। इसमें 375 से अधिक योगदानकर्ताओं के साथ मासिक रिलीज़ और एक सक्रिय समुदाय है। आपके पास अपने सर्वर पर असीमित निजी, आंतरिक और सार्वजनिक रिपॉजिटरी हो सकती हैं। यह एक रूबी ऑन रेल्स ऐप है जो अधिकांश यूनिक्स प्लेटफार्मों पर चलता है।


1
मैं सहमत हूं, यह बहुत बढ़िया है। (+1) लेकिन इस टिप्पणी के रूप में यह स्थापित करने के लिए एक दर्द है। यह बहुत अच्छा होगा यदि वे आरपीएम,
डिबेट

2
मैंने उबंटू के लिए अपेक्षाकृत नया एकल स्क्रिप्ट सेटअप पाया है जो बहुत दर्द मुक्त है। इसके बिना भी यह ज्यादातर साइट से निर्देशों का पालन करने का मामला है। मैंने कभी भी रैलिंग या वास्तव में उबंटू सर्वर का उपयोग नहीं किया है और मुझे यह पहली कोशिश में मिला है।
जॉन शायर

मैंने LDAP के माध्यम से सक्रिय निर्देशिका के साथ इसे एकीकृत करने में कुछ परेशानी का अनुभव किया।
रिजेबॉश

2
दरअसल, आजकल GitLab को इंस्टॉल करना काफी आसान है। यह एक पैकेज को अनपैक करने की बात है। About.itlab.com/downloads
जॉब

2
Gitlab Enterprise नि: शुल्क नहीं है, लेकिन सामुदायिक संस्करण है , जो मुफ़्त है और इंस्टॉल करना भी आसान है। हालाँकि, इसके लिए लगभग 800 एमबी डिस्क स्थान की आवश्यकता होती है, क्योंकि यह डेटाबेस इंजनों के जोड़े और बहुत सारी निर्भरता को स्थापित करता है।
OndroMih

39

यदि आप कमांड लाइन के साथ नीचे उतरने और गंदे होने का बुरा नहीं मानते हैं, तो कॉर्पोरेट वातावरण में काम करते समय जिगोलिट एक अचूक इलाज है, जहाँ आपको विभिन्न रिपॉजिटरी पर अलग-अलग एक्सेस राइट्स सेट करने की आवश्यकता होती है। यह @Chris द्वारा उल्लिखित गिटोसिस के एक नए संस्करण की तरह है।

यहाँ लेखक की वेब साइट से सारांश है:

Gitolite आपको सर्वर पर एकल उपयोगकर्ता का उपयोग करने के लिए कई git रिपॉजिटरी को होस्ट करने और कई डेवलपर्स तक पहुंच प्रदान करने की अनुमति देता है, बिना उन्हें सर्वर पर वास्तविक उपयोगकर्ता या शेल एक्सेस देने के। ऐसा करने में आवश्यक जादू ssh के pubkey का उपयोग और अधिकृत_की फ़ाइल है, और प्रेरणा एक पुराना प्रोग्राम था जिसे gitosis कहा जाता है।

Gitolite प्रतिबंधित कर सकता है (क्लोन / भ्रूण) से कौन पढ़ सकता है या एक भंडार को (धक्का) लिख सकता है। यह भी प्रतिबंधित कर सकता है कि कौन किस शाखा या टैग को धक्का दे सकता है, जो कॉर्पोरेट वातावरण में बहुत महत्वपूर्ण है। Gitolite को रूट अनुमतियों की आवश्यकता के बिना स्थापित किया जा सकता है, और स्वयं git और perl की तुलना में कोई अतिरिक्त सॉफ़्टवेयर नहीं है।

इसमें काफी व्यापक सुविधा सेट है, लेकिन एक चीज जो मुझे बहुत पसंद है, वह यह है कि दिन के सभी दिन विन्यास संपादन एक विशेष गिट रिपॉजिटरी के माध्यम से किया जाता है। यानी एक यूजर को जोड़ना ही है

  • कॉन्फ़िगरेशन फ़ाइल में उपयोगकर्ता जोड़ें
  • उपयोगकर्ता की ssh कुंजी जोड़ें
  • बदलाव को कमिट करें
  • इसे गिटोलाइट में धक्का दें
  • Voila, कॉन्फ़िगरेशन लाइव है!

और जब ब्राउज़र के माध्यम से कोड को देखने की आवश्यकता होती है, तो gitweb के साथ "सिंकिंग" कॉन्फ़िगरेशन के लिए gitolite का समर्थन होता है। या अगर आपको cgit पसंद है , जो C में लिखे गए git के लिए बहुत अच्छा web frontend है, तो आपको इस बात पर ध्यान देना चाहिए कि यह कैसे करना है


24

आप छोटे कार्यक्षेत्रों के लिए Gitblit , एक ओपन-सोर्स, एकीकृत, शुद्ध जावा गिट सर्वर, दर्शक और रिपॉजिटरी मैनेजर पर विचार कर सकते हैं।


Gitblit अपने आवेदन के लिए एकदम सही लगता है, लेकिन यह मुझे चिंता है कि पिछले रिलीज 2016 में था
रॉबर्टो

1
@ रॉबर्टो, एक वैध बिंदु। मुझे लगता है कि यह इस बात पर निर्भर करता है कि आपको क्या चाहिए या आपके लिए क्या महत्वपूर्ण है। यदि यह आपके लिए काम करता है जैसा कि यह है, यह अभी भी एक वैध विकल्प हो सकता है। यदि आप समय पर बग फिक्स के बारे में चिंतित हैं या अधिक सुविधाओं की आवश्यकता है, तो यह नहीं हो सकता है।
फ्लोरियन

15

नंगे हड्डियाँ ब्राउज़र

git instaweb --httpd=webrick

से Git एससीएम किताब

वितरित विकास के लिए यहाँ वर्णित दृष्टिकोण के साथ इसे कुछ मिलाएं ( अच्छी तरह से वर्णित अवधारणा के लिए डेटाग्रोक को क्रेडिट )

किसी भी स्थानीय रिपॉजिटरी से वन-ऑफ गिट सर्वर लॉन्च करें।

मैंने यह पहले ही ट्वीट कर दिया था लेकिन मुझे लगा कि यह कुछ विस्तार का उपयोग कर सकता है:

विकेन्द्रीकृत git वर्कफ़्लो को सक्षम करें: git config alias.erve "डेमॉन --verbose --export-all --base-path = .it --reuseaddr --strict-path .it /"।

मान लें कि आप एक git वर्कफ़्लो का उपयोग करते हैं जिसमें एक कोर "आधिकारिक" रिपॉजिटरी के साथ काम करना शामिल है जिसे आप अपने परिवर्तनों को खींचते हैं और इसमें से धक्का देते हैं। मुझे यकीन है कि कई कंपनियाँ ऐसा करती हैं, जैसे कि गीथब की सेवाओं की तरह कई उपयोगकर्ता भी इसकी मेजबानी करते हैं।

उस सर्वर या Github का कहना है, थोड़ा नीचे चला जाता है।

कोई चिंता नहीं, आखिरकार, आप जिन कारणों से गिट का उपयोग करते हैं उनमें से एक आपके स्थानीय क्लोन में पूरे प्रोजेक्ट इतिहास की एक प्रति है।

आप कोडिंग और कमिटिंग पर सही रख सकते हैं, जबकि आप सर्वर को वापस जीवन में लाने के लिए ऑपरेशन टीम की प्रतीक्षा करते हैं। स्वयं पर ध्यान दें: ऑपरेशन टीम के लिए डोनट्स खरीदें।

लेकिन क्या होगा अगर, इस डाउनटाइम के दौरान, आप किसी अन्य व्यक्ति के साथ सहयोग करना चाहते हैं, जो एक ही रिपीटरीटरी पर एक गिट विशेषज्ञ नहीं हो सकता है?

या, डाउनटाइम के बजाय, क्या होगा यदि आप और आपके सहयोगी क्षेत्र में हैं, और किसी कारण से आप अपने वीपीएन को अपने आधिकारिक रेपो से जुड़ने नहीं दे सकते हैं?

या, क्या होगा यदि आप और आपके सहयोगी प्रायोगिक परिवर्तनों का एक समूह बना रहे हैं, और आपके पास पहुंच होने के बावजूद, आप अपने अधूरे गड़बड़ को आधिकारिक केंद्रीय भंडार में नहीं धकेलना चाहते हैं? (फीचर शाखाओं के रूप में भी नहीं।) शायद आप एक विनाशकारी रिबेस या मर्ज को साफ करने के बीच में हैं और शाखाएं सभी जगह हैं।

ठीक है, जीआईटी, जैसा कि आप शायद जानते हैं, एक "वितरित" संस्करण नियंत्रण प्रणाली है

भले ही आप अपने वर्कफ़्लो में एक केंद्रीय "आधिकारिक" गिट रिपॉजिटरी का उपयोग कर सकते हैं, फिर भी आपके पास सहकर्मी से सहकर्मी तरीके से गिट का उपयोग करने की क्षमता है, जहां आप और आपके सहयोगी बस एक दूसरे के साथ कमिट बनाते हैं और साझा करते हैं, और केंद्रीय सर्वर को कभी पता भी नहीं चलता।

तो, आप अपनी शाखाएँ कैसे प्राप्त करते हैं और उन पर काम करते हैं, या इसके विपरीत?

  • आप ई-मेलिंग पैच के लिए git की सुविधाओं का उपयोग कर सकते हैं। लेकिन यह थोड़ा अटपटा है और ई-मेल वाले पैच को कैसे लागू किया जाए, इसके कुछ ज्ञान की आवश्यकता होती है।
  • आप अपने सहयोगी के लिए ssh में अपनी मशीन पर एक खाता बना सकते हैं। लेकिन हो सकता है कि आपके पास स्थानीय रूट एक्सेस न हो, या हो सकता है कि आप एसएसएच एक्सेस के साथ उन पर भरोसा न करें।
  • आप अपने रेपो को एक थंबड्राइव पर क्लोन कर सकते हैं और इसे आगे-पीछे कर सकते हैं। लेकिन यह बल्कि थकाऊ है, खासकर यदि आप एक ही स्थानीय नेटवर्क पर होते हैं, और एक अंगूठे ड्राइव की आवश्यकता होती है।

आप शायद अन्य तरीकों के बारे में भी सोच सकते हैं। लेकिन एक सुपर आसान तरीका है: यदि आप नेटवर्क पर एक-दूसरे को देख सकते हैं, तो आप एक-बंद गिट सर्वर लॉन्च कर सकते हैं, जिसका उपयोग वे अपने रिमोट के रूप में क्लोन करने, लाने और अपने परिवर्तनों को खींचने के लिए कर सकते हैं और जब आप इसे मार सकते हैं इसके साथ किया।

इसे सक्षम करने वाला उपकरण है git daemon, जिसमें बहुत सारे विकल्प और कार्यक्षमता है, लेकिन इस आसान को सक्षम करने के उद्देश्य से "मैं जिस रेपो में हूं, उसकी सेवा करें", इसका उपयोग करने का तरीका एक उपनाम बनाना है। मुझे इसे कॉल करना पसंद है git serve। Daud:

git config --global alias.serve "daemon --verbose --export-all --base-path=.git --reuseaddr --strict-paths .git/"

एक उपनाम का उपयोग करना वास्तव में महत्वपूर्ण है, क्योंकि गिट उपनाम को आपके कार्यशील पेड़ की आधार निर्देशिका में निष्पादित किया जाता है। इसलिए मार्ग '.git' हमेशा सही जगह पर इंगित करेगा, चाहे आप अपनी रिपॉजिटरी के डायरेक्टरी ट्री के भीतर ही क्यों न हों।

अपने नए का उपयोग करें git serve:

  1. भागो git serve। "रंबल के लिए तैयार है," यह रिपोर्ट करेगा। गित बुरा-गधा है।
  2. अपने आईपी पते का पता लगाएं। कहो तो 192.168.1.123 है।
  3. कहो "हे जेन, मैं तैयार नहीं हूं / इन कमिट्स को मूल तक धकेलने में सक्षम हूं, लेकिन आप मेरे कॉमन्स को अपने क्लोन में ला सकते हैं git fetch git://192.168.1.123/"
  4. जब आप उस रेपो की सेवा नहीं करना चाहते हैं तो ctrl + c दबाएं।

आप जेन को यह भी बता सकते हैं कि git clone git://192.168.1.123/ local-repo-nameक्या उसके पास अभी तक रिपॉजिटरी का क्लोन नहीं है। या, git pull git://192.168.1.123/ branchnameएक बार करने के लिए उपयोग करें और एक बार में मर्ज करें, यदि आप एक सुविधा शाखा पर एक साथ काम कर रहे हैं।

ध्यान दें कि यदि आप अपने रिपॉजिटरी में रहस्य रखते हैं, तो आपको शत्रुतापूर्ण नेटवर्क पर ऐसा नहीं करना चाहिए, क्योंकि कोई प्रमाणीकरण नहीं है। यह अपने अस्तित्व का विज्ञापन नहीं करता है, लेकिन आ पोर्ट स्कैनर वाला कोई भी व्यक्ति इसे पा सकता है, इससे जुड़ सकता है और अपने रेपो को क्लोन कर सकता है।

लेकिन यह सुपर खतरनाक नहीं है क्योंकि यह केवल डिफ़ॉल्ट रूप से पढ़ा जाता है। git daemonमैन पेज को ध्यान से पढ़ें अगर आपको लगता है कि आप लेखन पहुंच को सक्षम करना चाहते हैं। उस स्थिति में जहां आप अपने सहयोगी के कमिट को प्राप्त करना चाहते हैं, इसे केवल पढ़ने के लिए छोड़ना अधिक सुरक्षित है, और अपने सहयोगी से इस कमांड को चलाने के लिए भी कहें, ताकि आप उनसे खींच सकें।

तात्कालिक रूप से संबंधित: एक-ऑफ सर्वर के विषय पर, यदि आप अस्थायी रूप से HTTP पर स्थिर फ़ाइलों का एक गुच्छा साझा करना चाहते हैं: python -m SimpleHTTPServer


11

यदि आपको GitBlit की कोशिश करनी चाहिए तो आपको अच्छे, आसान GIT सर्वर की आवश्यकता होगी। इसके अलावा, मैं gitolite का उपयोग करता हूं, लेकिन यह केवल सर्वर है, GitBlit के साथ आपको सभी एक, सर्वर, व्यवस्थापक, रिपॉज में मिलते हैं। प्रबंधक ... URL: http://gitblit.com/


9

https://rhodecode.com Git & Mercurial के लिए एक ओपन सोर्स वेब ऐप है जो किसी भी ऑपरेटिंग सिस्टम (एक इंस्टॉलर शामिल है) के तहत बहुत आसानी से इंस्टॉल किया जा सकता है।

रोडकोड (नया संस्करण को रोडकोड एंटरप्राइज कहा जाता है) कोड समीक्षा की तरह लापता गिट विशेषताएं जोड़ता है और यह आम तौर पर बहुत तेज और विश्वसनीय बोल रहा है।


1
मैं वास्तव में यहां अपना उदाहरण चलाता हूं: code.gmgauthier.com । 3.x रिलीज उल्लेखनीय रूप से स्वच्छ और स्थिर है। मैं इसे कोड की तुलना में बहुत अधिक उपयोग करता हूं, वास्तव में (हालांकि, वहां बहुत कुछ है)। मैं इसका उपयोग अपनी व्यक्तिगत पत्रिकाओं, दो पुस्तकों के लिए पांडुलिपियों, पॉडकास्ट लिपियों और ब्लॉग ड्राफ्ट की मास्टर प्रतियां रखने के लिए करता हूं। यह इसके लिए आदर्श है, आंशिक रूप से क्योंकि यह आपके लिए Markdown और RestructuredText दोनों को प्रस्तुत करता है, जिससे ड्राफ्ट कहीं से भी पठनीय बन जाता है।
ग्रेग गॉथियर

8

आप Indefero भी स्थापित कर सकते हैं , यह GoogleCode का एक GPL क्लोन है, क्योंकि यह सबवर्सन और Git दोनों का समर्थन करता है, आपके पास एक चिकनी संक्रमण हो सकता है। मैं Indefero का लेखक हूं।


मैं इसका उपयोग कर रहा हूं और इसे पसंद कर रहा हूं। लेकिन डिजाइन थोड़ा पुराना है। क्या यह अभी भी कायम है?
जारोस्लाव


8

यह सबसे आम git सर्वर सेटअप नहीं हो सकता है , लेकिन विभिन्न लेआउट, टूल, मिररिंग और अनुमति योजनाओं के साथ खेला जा रहा है; मैं कहूंगा कि एंटरप्राइज़ रिपॉजिटरी के लिए एक बहुत ही ठोस विकल्प Gerrit है , जो आश्चर्यजनक लग सकता है क्योंकि इसे अधिक जाना जाता है कोड समीक्षा उपकरण। हमने इसे कोड समीक्षा के रूप में उपयोग करना शुरू कर दिया और यह धीरे-धीरे हमारी मुख्य रिपॉजिटरी बन गया, जिसमें जी 3 / गिटोलिट का चित्रण किया गया

  • यह तैनात करने के लिए सीधा है (आप मूल रूप से .war in a tomcat)
  • रिपॉजिटरी, समूहों और अनुमतियों (या एक ssh cli) को प्रबंधित करने के लिए एक वेब यूआई है
  • एक अंतर्निहित जावा ssh और git कार्यान्वयन है, इसलिए आपके पास सेट अप करने के लिए और कुछ नहीं है
  • उपयोगकर्ताओं और समूहों के लिए ldap समर्थन (आमतौर पर कंपनियों के लिए आवश्यक)
  • एक बहुत ही लचीली अनुमति प्रणाली (परियोजना समूहों के साथ, अनुमति विरासत, पढ़ने / लिखने / ब्रांचिंग / अनारक्षित लेखन / आदि को प्रतिबंधित करना)
  • कोड समीक्षा क्षमताओं (यदि आप उस चीज़ में हैं)
  • रेपो मिररिंग (जीथूब या अन्य सार्वजनिक रेपो के लिए कुछ रिपॉजिटरी पुश करने के लिए)

इसके अलावा, यह बड़ी परियोजनाओं (जैसे एंड्रॉइड, क्रोम) द्वारा उपयोग किया जाता है इसलिए यह तराजू करता है और अब काफी ठोस है। यदि आप कोड समीक्षा भाग को दरकिनार करना चाहते हैं तो बस अपने उपयोगकर्ताओं को PUSH की अनुमति दें।


7

एक दूरस्थ होस्टिंग के लिए जैसा कि दूसरों ने कहा है कि bitbucket.org मुफ्त निजी रिपॉजिटरी प्रदान करता है, मैं इसे बिना किसी समस्या के उपयोग कर रहा हूं।

स्थानीय या LAN नेटवर्क के लिए मैं इसे एक scm-manager.org (एक एकल निष्पादन योग्य फ़ाइल, वास्तव में स्थापित करने के लिए सरल है, जोड़ दूंगा , इसे जावा पर बनाया गया है ताकि यह लिनक्स या विंडोज पर चल सके)। बस अगर आप इसे स्थापित करते हैं, तो ये डिफ़ॉल्ट पासवर्ड हैं।

Username: scmadmin
Password: scmadmin

3
डिफ़ॉल्ट क्रेडेंशियल प्रदान करने के लिए धन्यवाद।
रयान विलियम्स

6

इस बीच, मर्क्यूरियल होस्टिंग साइट Bitbucket ने Git रिपॉजिटरी को भी पेश करना शुरू कर दिया है।

इसलिए यदि आपको किसी स्थानीय सर्वर की आवश्यकता नहीं है, तो बस कुछ केंद्रीय स्थान जहां आप मुफ्त में निजी Git रिपॉजिटरी की मेजबानी कर सकते हैं, IMO Bitbucket सबसे अच्छा विकल्प है।

मुफ्त में, आपको असीमित निजी और सार्वजनिक Git और Mercurial रिपॉजिटरी मिलती हैं।
केवल सीमा यह है कि नि: शुल्क योजना में, पांच से अधिक उपयोगकर्ता आपके निजी रिपॉजिटरी तक नहीं पहुंच सकते हैं (अधिक के लिए, आपको भुगतान करना होगा)। अधिक जानकारी के लिए https://bitbucket.org/plans
देखें !



2

यदि आप सिर्फ एक केंद्रीय स्थान पर अपनी रिपॉजिटरी चाहते हैं, तो यह Git जैसे वितरित संस्करण नियंत्रण के साथ काफी आसान है:
आप अपने सेंट्रल रिपॉजिटरी को केंद्रीय मशीन पर कुछ साझा फ़ोल्डर में रख सकते हैं और हर कोई इसे वहां से क्लोन कर सकता है।

यदि आप अपने स्थानीय सर्वर पर "वास्तविक" वेबसाइट चाहते हैं, तो मुझे Git होस्टिंग वेबसाइट http://repo.or.cz का पता है
ऐसा लगता है कि GitHub की तुलना में कम सुविधाएँ हैं, लेकिन GitHub के विपरीत, आप स्रोत कोड प्राप्त कर सकते हैं और इसे अपने स्थानीय स्थानीय सर्वर पर होस्ट कर सकते हैं।

डिस्क्लेमर: मैंने केवल repo.or.cz के बारे में पढ़ा है, मैंने इसे कभी खुद नहीं आजमाया!


2

सरल सेटअप के लिए, आप एक केंद्रीय सर्वर तक ssh पहुँच प्रदान कर सकते हैं, और इस 'मूल' से पुश / खींचने के लिए प्रत्येक उपयोगकर्ता की कार्यशील निर्देशिका सेट कर सकते हैं। यह छोटी टीमों के लिए सबसे सरल और सामान्य सेटअप होगा।

आप गिटोसिस में भी देख सकते हैं जो आपको एक http सर्वर और दूरस्थ रूप से प्रबंधित करने की क्षमता प्रदान करता है। इस तरह से आपको ssh का उपयोग करने की अनुमति नहीं है और वह सब जो प्रत्येक कमिट करने के लिए मजबूर करता है।


2

क्रिस ने जो कहा है, उसे जोड़ने के लिए, आप वास्तव में रेपो तक पहुंचने के लिए नियंत्रण के लिए गिटोसिस (http://eagain.net/gitweb/?p=gitosis.git) का उपयोग कर सकते हैं।

आपके उपयोग के आधार पर, आप हुक का उपयोग भी कर सकते हैं (। Init / हुक फ़ोल्डर) ताकि आपका कोड स्वचालित रूप से सर्वर के फाइल सिस्टम में खींच लिया जाए जब आप अपने स्थानीय मशीन से धक्का देते हैं। यहाँ ऐसा करने के लिए एक लोकप्रिय स्क्रिप्ट है: http://utsl.gen.nz/git/post-update । यह सभी मामलों में आवश्यक नहीं होगा।


अपडेट के बाद की स्क्रिप्ट का लिंक मर चुका है ...
मोर्टेन जेन्सेन

1

http://repo.or.cz , जबकि कुछ उपयोगकर्ताओं के साथ कुछ मुद्दों के लिए काफी अच्छा है।

यदि आप उनमें से एक हैं तो मेरा सुझाव है कि आप http://unfuddle.com को आज़माएं जब से आप तोड़फोड़ की पृष्ठभूमि से आते हैं, आप ।

" 30 दूसरा दौरा देखें " देखें: http://unfuddle.com/about/tour/plans


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