Git सर्वर सेट करना


57

मैंने हाल ही में अमेज़न ईसी 2 पर ubuntu-server की स्थापना की है। मैं इसे अपने git सर्वर के रूप में उपयोग करना चाहता हूं, इसलिए मैं अपना रिपॉजिट स्टोर कर सकता हूं।

तो, मुझे ubuntu सर्वर पर git सेटअप करने के कुछ विस्तृत निर्देश कहां मिल सकते हैं? इन सभी SSH कुंजी और सामान जैसे कि, कई उपयोगकर्ता, आदि।


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

22
@BonboBingo कह रहा है "बस खोज Google" वास्तव में एक समाधान नहीं है। सवाल यहाँ के बहुमत "अगर आप काफी लंबे समय से खोज ..." उबंटू बनना है पूछो साथ उत्तर दिया जा सकता है अधिक जानकारी के लिए - अधिकार प्रश्न और उत्तर साइट है कि कहते हैं कि "बस गूगल" उत्तर की एक दीवार के बजाय स्तर 1 उत्तर प्रदान जाँच पूछे जाने वाले प्रश्न
मार्को Ceppi

1
यहाँ एक उपयोगी स्टेप गाइड है: help.ubuntu.com/community/Git। @Marco Ceppi क्षमा करें, लेकिन मैं पोलिमिकल नहीं था। और फिर मैंने जो लिंक पोस्ट किया था, वह सवाल के लिए काफी प्रासंगिक लगता है ... ठीक है अब एक जवाब के रूप में?
बोनबिंगो

@BonboBingo टिप्पणी जवाब के रूप में गिनती नहीं है! मैं आपकी टिप्पणी के "खोज Google" भाग पर केवल टिप्पणी कर रहा था। यदि आप उबंटू सहायता गाइड में गीट लेख के बारे में विवरण के साथ उत्तर देना चाहते हैं, तो आपको इस पृष्ठ के निचले भाग में "आपका उत्तर" बॉक्स का उपयोग करना चाहिए! :)
मार्को Ceppi

2
"उत्तर की एक दीवार के बजाय जो" जस्ट Google "कहती है - अधिक जानकारी के लिए जांच करें" ... ठीक है आप सही हैं :) चलो यहाँ रुकें।
बोनबिंगो

जवाबों:


38

आप एक git सर्वर को स्थापित करने के लिए ट्यूटोरियल का उपयोग कर सकते हैं जैसे aking1012 ने आपको प्रस्तावित किया है या आप अपने EC2 उदाहरण पर SSH सर्वर स्थापित कर सकते हैं (शायद इसे सुरक्षित करने और डिफ़ॉल्ट पोर्ट को बदलने के लिए बुद्धिमान होगा)।

जीआईटी सर्वर-कम हो सकता है आप अपनी रिपॉजिटरी में प्रवेश करते हैं और फिर आप इसे एसएसएच के माध्यम से रिमोट से एक्सेस करते हैं। तो इस तरह के निर्देश उबंटू सर्वर पर करना चाहिए:

GIT_DIR=project.git git init  
cd project.git  
git --bare update-server-info  
cp hooks/post-update.sample hooks/post-update

अंत में अपने सर्वर पर SSH स्थापित करें:

sudo apt-get install ssh-server

अब, आपको इसे सुरक्षित करने के लिए SSH को कॉन्फ़िगर करना चाहिए।

यह आपकी परियोजना को ऑनलाइन करने का समय है (आपके पास पहले से आपके विकास मशीन पर मौजूद डेटा):

git push ssh://<username>@<remote-git-hostname>/path/to/project.git master

और अब आप आस-पास क्लोनिंग शुरू कर सकते हैं। आप अपनी विकास मशीन पर जाएं:

git clone ssh://<username>@<remote-git-hostname>/path/to/dir.git

Git पर इस उत्कृष्ट संसाधन की जाँच करें ।

और सुरक्षित प्रमाणीकरण के लिए अपनी ssh कुंजियाँ बनाने के लिए, आप SSH प्रमाणीकरण के बारे में इस लेख को पढ़ सकते हैं ।


ऐसा नहीं होना चाहिए openssh-server?
जॉर्ज कास्त्रो

1
@ जॉर्ज ऐसा लगता है कि ssh-serverकम से कम उबंटू 10.04 पर ओपनश -सर्वर के लिए एक उपनाम है।
Huygens

1
ठीक है, यह काम कर सकता है, लेकिन एसएसएच के माध्यम से अमेज़ॅन ईसी 2 मशीनों में प्रवेश करने के लिए सार्वजनिक / निजी कीपर (ssh -i key.pem ubuntu @ पता) की आवश्यकता होती है। इसके अलावा, मुझे पथ को याद रखना है (ubuntu @ पता: / var / www / dir1 / dir2), इसके बजाय सिर्फ git क्लोन git.mydomain.com/repository
Pawełkowy

1
@ अच्छी बात है। इसलिए कुछ लोग फाइल सिस्टम रूट पर git रिपॉजिटरी डालते हैं। लेकिन हां, आपको ssh कीज़ या अकाउंट्स की ज़रूरत है। या आप HTTP का उपयोग कर सकते हैं, लेकिन तब आपके पास AFAIK का वास्तव में अच्छा अभिगम नियंत्रण नहीं है।
Huygens

3
@ PawełKarpiński - आप ~/.ssh/configउपयोगकर्ता नाम / होस्ट पता, कुंजी इनपुट, पोर्ट और व्हाट्सएप को संभालने के लिए एक क्लाइंट-साइड SSH कॉन्फिगर फाइल सेट कर सकते हैं ।
शौना

15

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

sudo apt-get install gitolite

यह Github, या Gitweb जैसे वेब फ्रंटेंड प्रदान नहीं करेगा - लेकिन आप आसानी से Gitolite जैसी किसी चीज़ के शीर्ष पर इसे कॉन्फ़िगर और इंस्टॉल कर सकते हैं।


9

मुझे जिओलाइट पसंद है । प्रो गिट पुस्तक पर एक खंड है, लेकिन मैं पूरी पुस्तक को पढ़ने की सलाह देता हूं।

आपके कई उपयोगकर्ताओं की आवश्यकता के अनुसार:

Gitolite आपको न केवल रिपॉजिटरी (जैसे Gitosis करता है) द्वारा अनुमतियाँ निर्दिष्ट करने की अनुमति देता है, बल्कि प्रत्येक रिपॉजिटरी के भीतर शाखा या टैग नामों से भी। यही है, आप यह निर्दिष्ट कर सकते हैं कि कुछ लोग (या लोगों के समूह) केवल कुछ "रेफ्स" (शाखाएं या टैग) को धक्का दे सकते हैं लेकिन दूसरों को नहीं।


7

http://scie.nti.st/2007/11/14/hosting-git-repositories-the-easy-and-secure-way आपके उद्देश्यों के अनुरूप थोड़ा संशोधित किया जा सकता है ... एक समान ट्यूटोरियल http: // ब्लॉग .agdunn.net /? p = 277


1
नोट: मैं वर्तमान में एक 0 के साथ rvm, ree / माणिक, रेल, git ट्यूटोरियल डेवलपमेंट क्लाइंट और डेवलपमेंट सर्वर ट्यूटोरियल के लिए डाल रहा हूँ। यह सिर्फ एक जगह में बहुत सारे ऑनलाइन ट्यूटोरियल खींचता है और उन्हें थोड़ा संशोधित करता है, लेकिन यह अभी भी प्रगति पर है।
रोबॉटहंसन

ये ट्यूटोरियल भयानक हैं, लेकिन ठीक है, वे बहुत अधिक जटिल हैं। कोई "छोटा" ट्यूटोरियल नहीं है? :)
Pawełkowy

मैंने कुछ भी अधिक सीधा नहीं देखा है ... गॉइटियस और गिटोसिस के लिए अधिकांश ट्यूटोरियल एक नमूना परियोजना और परीक्षण बनाने के माध्यम से नहीं जाते हैं (मुझे लगता है कि हर ट्यूटोरियल में होना चाहिए)। अगर मुझे एक और
टोट दिखती है

@ PawełKarpiński - उनके बारे में इतना जटिल क्या है? मैंने पहले Gitosis सेटअप का उपयोग किया है, और यह वास्तव में बहुत आसान है।
शऊना


4

मेरे लिए सबसे अच्छा काम करने वाला समाधान, WebDAV की स्थापना कर रहा था।

  • sudo a2enmod sudo dav_fs

  • sudo a2enmod dav

  • /etc/apache2/sites-availableउदाहरण के लिए, इसमें नई फ़ाइल जोड़ें और नाम दें git.yourserver.com। इसे संपादित करें और निम्नलिखित लाइनें जोड़ें:

<VirtualHost *:80>

DocumentRoot /var/www/git.yourserver.com/repos
ServerName git.yourserver.net
Options Indexes FollowSymLinks MultiViews

<Location />
    DAV On
    AuthType Basic
    AuthName "git repos"
    AuthUserFile /var/www/git.yourserver.net/password.dav
    Require valid-user
</Location>

</VirtualHost>

  • id के अंदर डायरेक्टरी /var/www/git.yourserver.comऔर डायरेक्टरी बनाएंrepos
  • sudo chown www-data /var/www/git.yourserver.com/repos
  • sudo htpasswd -c /var/www/git.yourserver.com/password.dav user_login और नामित उपयोगकर्ता के लिए पासवर्ड दर्ज करें user_login
  • sudo chown root:www-data /var/www/git.yourserver.com/password.dav
  • sudo chmod 640 /var/www/git.yourserver.com/password.dav

अब, sudo a2ensite git.yourserver.comऔर sudo service apache2 restart

  • दर्ज /var/www/git.yourserver.com/reposऔर उदाहरण के लिए, निर्देशिका बनाने,myrepo.git
  • cd myrepo.git
  • git --bare init
  • git update-server-info

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

git clone http://user_login:user_password@git.yourserver.com/myrepo.git

और आप समाप्त कर चुके हैं। यदि आप सर्वर पर अपना कमिटेड परिवर्तन भेजना चाहते हैं:

git push origin master

आप जितने चाहें उतने उपयोगकर्ता बना सकते हैं sudo htpasswd। बस याद रखें कि -cअधिक उपयोगकर्ताओं को जोड़ने पर स्विच का उपयोग न करें , क्योंकि पुरानी फ़ाइल हटा दी जाएगी।


3
HTTP "डंब" प्रोटोकॉल है जो समर्थित है लेकिन दृढ़ता से हतोत्साहित है। देशी git प्रोटोकॉल बहुत बेहतर काम करता है, और इसे स्थापित करना आसान है क्योंकि आपको जो भी करना है वह एक कार्यशील ssh सर्वर है (जो आपको पहले से ही होना चाहिए) और git-core स्थापित करना। अपाचे के बारे में बिलकुल भी नहीं सोचना चाहिए।
psusi

3

मुझे उपयोगकर्ताओं और सुरक्षा के प्रबंधन के लिए गिटोलिट दृष्टिकोण भी पसंद है । वर्तमान में परीक्षण किए जा रहे EC2 के लिए मेरे पास Git + gitolite सर्वर AMI है। इसे एक कोशिश देने के लिए स्वतंत्र महसूस करें; प्रलेखन यहाँ उपलब्ध है:

Alestic Git Server

इस दृष्टिकोण का उपयोग करके, आपके पास एक केंद्रीय Git सर्वर हो सकता है जिसमें कुछ मिनटों में निजी रिपॉजिटरी चल सकती है। यदि आप उनसे परिचित नहीं हैं तो gitolite और EC2 के लिए सीखने की अवस्था है।


3

गिटोलिट के साथ इसे प्राप्त करना बहुत आसान है । एक घंटे से भी कम समय में आपके पास आसान विन्यास योग्य और सुरक्षित मल्टीसियर गिट सर्वर होगा।

मैं अपनी साइट पर एक howto लेख है

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