गिटोसिस बनाम गिटोलिट? [बन्द है]


139

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

मुझे दोनों समाधानों के बीच कोई तुलना नहीं मिली। उनके बीच मुख्य अंतर क्या हैं? क्या अन्य समान समाधान हैं?

जवाबों:


191

मैं अपनी टीम के साथ प्रोजेक्ट साझा करने के लिए git सर्वर स्थापित करने की तलाश में हूं।

आप सिर्फ गिट का उपयोग कर सकते हैं ।

Git सर्वर के लिए रिमोट सर्वर पर केवल एक चीज की जरूरत होती है। यदि आपको ठीक-ठाक अनुमतियों की आवश्यकता नहीं है (केवल आपकी टीम के साथ साझा करने से पता चलता है कि यह एक संभावना है) या कोई अतिरिक्त सुविधाएँ, तो आपको गिटोलाइट, या इसी तरह की आवश्यकता नहीं है।

कोई स्थापित समाधान

यदि दूरस्थ सर्वर पर गिट उपलब्ध है, तो आप वह कर सकते हैं जो आप अभी पूछ रहे हैं, बिना कुछ किए

ssh [user@]server
cd repos/are/here/
mkdir project.git
cd project.git
git init --bare

स्थानीय रूप से:

cd projects/are/here/project
git remote add origin [user@]server:repos/are/here/project.git
git push -u origin master

Git सर्वर सेट करना आसान है।

यदि आप समर्पित git उपयोगकर्ता के साथ काम करना चाहते हैं, तो git सर्वर स्थापित करने के लिए डॉक्स कम हैं - क्योंकि यह वास्तव में करना काफी आसान है।

संक्षेप में:

  • गिट स्थापित करें
  • Git नाम का यूजर बनाएं
  • उपयोगकर्ता की .ssh/authorized_keysफ़ाइल में अपनी और अपनी टीम की सार्वजनिक कुंजी जोड़ें
  • उपयोगकर्ता के खोल को बदल दें git-shell
  • सर्वर पर रिपोज बनाएं
  • git@yourserver.com पर git पुल / पुश शुरू करें

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


13
जानवर है कि GitLab + Gitolite स्थापित करने के बाद, अगर आप परियोजनाओं आदि पर ठीक नियंत्रण की जरूरत नहीं है, यह जाने का रास्ता है।
एंड्रयू टी फिनेल

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

2
@ हैम्स: git push -u origin masterऔर आप git pushइसके बाद उपयोग कर सकते हैं । मैं गितो * को पसंद करता हूं क्योंकि मेरे विचार में किसी भी रेपो तक पहुँचने वाले को दूरस्थ प्रणाली पर पूर्ण पथ की परवाह नहीं करनी चाहिए।
ThiefMaster

8
@ThiefMaster एक जंगली अनुमान लगा रहा है कि आप क्या मतलब है, अगर आप /home/git/एक परियोजना का उपयोग करने के लिए url में repos डालते हैं git@server:project.git
AD7six

1
@wsams ने उत्तर के इस भाग को पढ़ा "गिट उपयोगकर्ता के शेल को गिट-शेल में बदलें"।
फैबस्प्रो

142

मुख्य अंतर यह है कि गिटोसिस अब अप्रचलित है, और अब सक्रिय रूप से बनाए नहीं रखा गया है।

Gitolite बहुत अधिक पूर्ण विशेषता है , और अभी इसका तीसरा संस्करण जारी किया गया है ।

इसकी सबसे दिलचस्प विशेषता आभासी संदर्भ (संक्षेप में VREF) है जो आपको जितनी चाहें उतने अपडेट हुक घोषित करने की अनुमति देता है, जो आपको एक पुश द्वारा प्रतिबंधित करने की अनुमति देता है:

  • dir / फ़ाइल का नाम :
    कहते हैं कि आप नहीं चाहते कि जूनियर डेवलपर्स Makefile में परिवर्तन को आगे बढ़ाएं, क्योंकि यह काफी जटिल है:
    - VREF/NAME/Makefile = @junior-devs

  • नई फ़ाइलों की संख्या :
    कहते हैं कि आप नहीं चाहते कि जूनियर डेवलपर्स प्रति प्रतिबद्ध 9 से अधिक फ़ाइलों को आगे बढ़ाएं, क्योंकि आप चाहते हैं कि वे छोटे कमिट करें:
    - VREF/COUNT/9/NEWFILES = @junior-devs

  • उन्नत फ़ाइल प्रकार का पता लगाना :
    कभी-कभी किसी फ़ाइल का एक मानक एक्सटेंशन होता है (जो 'gitignore'd' नहीं हो सकता), लेकिन यह वास्तव में स्वचालित रूप से उत्पन्न होता है। यहाँ एक तरह से यह पकड़ने के लिए है:
    - VREF/FILETYPE/AUTOGENERATED = @all
    देखें src/VREF/FILETETYPEका पता लगाने तंत्र को देखने के लिए।

  • लेखक ईमेल की जाँच
    करना : कुछ लोग यह सुनिश्चित करना चाहते हैं कि "आप केवल अपने स्वयं के कमिट को आगे बढ़ा सकते हैं"।
    - VREF/EMAIL-CHECK = @all
    देख लो src/VREF/EMAIL-CHECK

  • कमिट पर मतदान :
    एक प्रतिबद्ध पर मतदान का एक बुनियादी कार्यान्वयन आश्चर्यजनक रूप से आसान है
    - VREF/EMAIL-CHECK = @all:। कार्यान्वयन
    # 2 votes required to push master, but trusted devs don't have this restriction
    # RW+ VREF/VOTES/2/master = @trusted-devs
    # - VREF/VOTES/2/master = @devs
    के src/VREF/VOTESलिए देखें ।

  • और इसी तरह...


3
मैं अब 3 साल से Gitolite का उपयोग कर रहा हूं। इसके साथ कभी कोई समस्या नहीं आई थी। मैं हमारे उत्पादन और स्टेजिंग सर्वर की जरूरत को केवल रिपॉजिट एक्सेस तक पढ़ता हूं। और फिर एक आसान काम अन्य विकास टीमों के साथ एक परियोजना साझा करना है। इसके अलावा अगर आप यूनिक्स और गिट पहले से जानते हैं तो सेटअप करना आसान है :)
तारीफ

Gitolite प्रलेखन में विकल्पों की तुलना शामिल है: gitolite.com/gitolite/gitolite.html#alt
क्विन केमेंडर

15

सिर्फ एक सिद्दत। आप अपनी आवश्यकताओं के लिए गेरिट का उपयोग भी कर सकते हैं:

जेरिट कोड की समीक्षा

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

गेरिट एक्सेस कंट्रोल

आप पहुँच नियंत्रण दस्तावेज़ में परिभाषित की गई किसी भी शाखा, टैग या किसी भी चीज़ के लिए पुश करने के लिए प्रतिबंधित कर सकते हैं।


8

एक और भी तेज और गंदे समाधान के लिए, बस गेट डेमॉन का उपयोग करें और पीयर-टू-पीयर जाएं। यहाँ सिर्फ ऐसा करने के बारे में एक लेख है।

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


2

मैं कुछ समय के लिए एलडीएपी एक्सेस, फाइन ग्रेनड एक्सेस कंट्रोल इत्यादि के साथ काम करने के लिए लगभग गड़बड़ कर रहा हूं ... एक रहस्योद्घाटन मिला: Gitlab का उपयोग करें :

  • गिट रिपोजिटरी
  • ठीक अनाज का उपयोग (afaik gitlab हुड के तहत gitolite का उपयोग करता है)

यदि आप त्वरित और तेज़ इंस्टॉलेशन विधि चाहते हैं: बिटनामी इंस्टॉलर का उपयोग करें


हां, लेकिन GitLab (gitlab-shell के साथ) ने सभी VREF हुक खो दिए जिन्हें आप आसानी से Gitolite के साथ सेटअप कर सकते हैं। और बहुत से लोग उन्हें वापस पसंद करेंगे: github.com/gitlabhq/gitlab-shell/issues/14 और github.com/gitlabhq/gitlab-shell/pull/85
वॉन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.