यह कमांड गिट-डेमन है जिसे हमारे कई मुफ्त ऑनलाइन वर्कस्टेशन जैसे कि उबंटू ऑनलाइन, फेडोरा ऑनलाइन, विंडोज ऑनलाइन एमुलेटर या मैक ओएस ऑनलाइन एमुलेटर का उपयोग करके ऑनवर्क्स फ्री होस्टिंग प्रदाता में चलाया जा सकता है।
कार्यक्रम:
नाम
गिट-डेमन - गिट रिपॉजिटरी के लिए एक बहुत ही सरल सर्वर
SYNOPSIS
Git डेमॉन [--वरबोस] [--सिसलॉग] [--निर्यात-सब]
[--टाइमआउट= ] [--init-timeout= ] [--अधिकतम-कनेक्शन = ]
[--सख्त-पथ] [--आधार-पथ= ] [--आधार-पथ-आराम]
[--उपयोगकर्ता-पथ | --उपयोगकर्ता-पथ= ]
[--प्रक्षेपित-पथ= ]
[--reuseaddr] [--detach] [--pid-file= ]
[--सक्षम= ] [--अक्षम= ]
[--अनुमति-ओवरराइड= ] [--निषिद्ध-ओवरराइड= ]
[--एक्सेस-हुक= ] [--[नहीं-]जानकारीपूर्ण-त्रुटियाँ]
[--आइनेटडी |
[--सुनो= ] [--पोर्ट= ]
[--उपयोगकर्ता= [--समूह= ]]]
[ ...]
वर्णन
एक बहुत ही सरल टीसीपी गिट डेमॉन जो आम तौर पर पोर्ट "DEFAULT_GIT_PORT" उर्फ 9418 पर सुनता है।
यह किसी सेवा के लिए पूछने वाले कनेक्शन की प्रतीक्षा करता है, और यदि ऐसा है तो वह उस सेवा को प्रदान करेगा
सक्षम होना चाहिए।
यह सत्यापित करता है कि निर्देशिका में जादुई फ़ाइल "गिट-डेमन-एक्सपोर्ट-ओके" है, और यह होगा
किसी भी गिट निर्देशिका को निर्यात करने से इंकार कर दें जिसे स्पष्ट रूप से इस तरह निर्यात के लिए चिह्नित नहीं किया गया है
(जब तक कि --निर्यात-सभी पैरामीटर निर्दिष्ट है)। यदि आप कुछ निर्देशिका पथों को पास करते हैं Git
डेमॉन तर्कों के आधार पर, आप प्रस्तावों को श्वेतसूची तक सीमित कर सकते हैं।
डिफ़ॉल्ट रूप से, केवल अपलोड-पैक सेवा सक्षम है, जो सेवा प्रदान करती है Git फ़ेच-पैक और Git
एलएस-रिमोट क्लाइंट, जिन्हें से आमंत्रित किया जाता है Git लाना, Git खींच, तथा Git क्लोन.
यह केवल-पढ़ने के लिए अपडेट के लिए आदर्श रूप से उपयुक्त है, यानी, गिट रिपॉजिटरी से खींचना।
सेवा के लिए एक अपलोड-संग्रह भी मौजूद है Git संग्रह.
विकल्प
--सख्त-पथ
पथों का सटीक मिलान करें (यानी वास्तविक पथ होने पर "/foo/repo" की अनुमति न दें
"/foo/repo.git" या "/foo/repo/.git") और उपयोगकर्ता-सापेक्ष पथ न बनाएं। Git डेमॉन
यह विकल्प सक्षम होने और कोई श्वेतसूची निर्दिष्ट नहीं होने पर प्रारंभ करने से इंकार कर दिया जाएगा।
--आधार-पथ=
दिए गए पथ के सापेक्ष सभी पथ अनुरोधों को रीमैप करें। यह एक प्रकार का "गिट रूट" है
- यदि आप दौड़ते हैं Git डेमॉन साथ में --बेस-पथ=/srv/git example.com पर, यदि आप बाद में
खींचने का प्रयास करें गिट: //example.com/hello.git, Git डेमॉन पथ की व्याख्या इस प्रकार करेगा
/srv/git/hello.git.
--आधार-पथ-आराम
यदि --बेस-पाथ सक्षम है और रेपो लुकअप विफल रहता है, तो इस विकल्प के साथ Git डेमॉन मर्जी
आधार पथ को उपसर्ग किए बिना देखने का प्रयास करें। यह स्विच करने के लिए उपयोगी है
--बेस-पथ का उपयोग, जबकि अभी भी पुराने पथों की अनुमति है।
--इंटरपोलेटेड-पथ=
वर्चुअल होस्टिंग का समर्थन करने के लिए, एक इंटरपोलेटेड पथ टेम्पलेट का उपयोग गतिशील रूप से किया जा सकता है
वैकल्पिक पथों का निर्माण करें. टेम्प्लेट लक्ष्य होस्टनाम के लिए %H का समर्थन करता है
क्लाइंट द्वारा आपूर्ति की गई लेकिन कैनोनिकल होस्टनाम के लिए सभी लोअरकेस, %CH में परिवर्तित कर दिया गया,
सर्वर के आईपी पते के लिए %IP, पोर्ट नंबर के लिए %P, और पूर्ण पथ के लिए %D
नामित भंडार का. प्रक्षेप के बाद, पथ को इसके विरुद्ध मान्य किया जाता है
निर्देशिका श्वेतसूची.
--निर्यात-सभी
Git रिपॉजिटरी की तरह दिखने वाली सभी निर्देशिकाओं से खींचने की अनुमति दें (है) वस्तुओं
और refs उपनिर्देशिकाएँ), भले ही उनके पास न हो गिट-डिमन-निर्यात-ठीक है फ़ाइल.
--inetd
सर्वर को inetd सेवा के रूप में चलाएं। तात्पर्य--syslog. --डिटैच के साथ असंगत,
--पोर्ट, --सुनें, --उपयोगकर्ता और --समूह विकल्प।
--सुनो=
किसी विशिष्ट आईपी पते या होस्टनाम पर सुनें। IP पते या तो IPv4 हो सकते हैं
यदि समर्थित हो तो पता या IPv6 पता। यदि IPv6 समर्थित नहीं है, तो
--listen=hostname भी समर्थित नहीं है और --listen को एक IPv4 पता दिया जाना चाहिए।
एक से अधिक बार भी दिया जा सकता है. साथ असंगत --inetd विकल्प.
--पोर्ट=
किसी वैकल्पिक पोर्ट पर सुनें. साथ असंगत --inetd विकल्प.
--इनिट-टाइमआउट=
कनेक्शन स्थापित होने के क्षण और क्लाइंट के बीच टाइमआउट (सेकंड में)।
अनुरोध प्राप्त हुआ है (आम तौर पर काफी कम मूल्य, क्योंकि यह मूल रूप से होना चाहिए
तुरंत)।
-- समयबाह्य =
विशिष्ट ग्राहक उप-अनुरोधों के लिए टाइमआउट (सेकंड में)। इसमें लगने वाला समय भी शामिल है
सर्वर के लिए उप-अनुरोध को संसाधित करना और अगले के इंतजार में लगने वाला समय
ग्राहक का अनुरोध.
--अधिकतम-कनेक्शन=
समवर्ती ग्राहकों की अधिकतम संख्या, डिफ़ॉल्ट 32 है। इसे बिना किसी सीमा के शून्य पर सेट करें।
--सिसलॉग
stderr के बजाय syslog पर लॉग इन करें। ध्यान दें कि इस विकल्प का अर्थ --verbose नहीं है
डिफ़ॉल्ट रूप से केवल त्रुटि स्थितियाँ लॉग की जाएंगी।
--उपयोगकर्ता-पथ, --उपयोगकर्ता-पथ=
अनुरोधों में उपयोगकर्ता नोटेशन का उपयोग करने की अनुमति दें। जब बिना किसी पैरामीटर के निर्दिष्ट किया जाता है,
git://host/~alice/foo के अनुरोध को एक्सेस के अनुरोध के रूप में लिया जाता है foo भंडार में
उपयोगकर्ता ऐलिस की होम निर्देशिका। यदि --user-path=path निर्दिष्ट है, तो वही अनुरोध
उपयोगकर्ता की होम निर्देशिका में पथ/फू रिपॉजिटरी तक पहुंचने के अनुरोध के रूप में लिया जाता है
ऐलिस।
--शब्दशः
आने वाले कनेक्शन और अनुरोधित फ़ाइलों के बारे में विवरण लॉग करें।
-- पुन: उपयोग करें
श्रवण सॉकेट को बाइंड करते समय SO_REUSEADDR का उपयोग करें। यह सर्वर को पुनरारंभ करने की अनुमति देता है
पुराने कनेक्शन के समय समाप्त होने की प्रतीक्षा किए बिना।
-- अलग करना
खोल से अलग करो. तात्पर्य--syslog.
--पिड-फ़ाइल=
इसमें प्रोसेस आईडी सेव करें पट्टिका. जब डेमॉन --inetd के अंतर्गत चलाया जाता है तो इसे अनदेखा कर दिया जाता है।
--उपयोगकर्ता= , --समूह=
सर्विस लूप में प्रवेश करने से पहले डेमॉन का यूआईडी और जीआईडी बदलें। जब केवल --user हो
--ग्रुप के बिना दिए गए, उपयोगकर्ता के लिए प्राथमिक समूह आईडी का उपयोग किया जाता है। के मूल्य
का विकल्प दिया गया है गेटपवनाम(3) और गेटग्रनाम(3) और संख्यात्मक आईडी समर्थित नहीं हैं।
--inetd के साथ प्रयोग करने पर ये विकल्प देना एक त्रुटि है; inet की सुविधा का उपयोग करें
डेमॉन को स्पॉनिंग से पहले इसे हासिल करना होगा Git डेमॉन यदि ज़रूरत हो तो।
उपयोगकर्ता आईडी बदलने वाले कई प्रोग्रामों की तरह, डेमॉन वातावरण को रीसेट नहीं करता है
$HOME जैसे वेरिएबल जब यह git प्रोग्राम चलाता है, उदाहरण के लिए अपलोड-पैक और रिसीव-पैक।
इस विकल्प का उपयोग करते समय, आप होम को पॉइंट पर होम पर सेट और निर्यात करना भी चाह सकते हैं
की निर्देशिका डेमॉन शुरू करने से पहले, और सुनिश्चित करें कि कोई Git कॉन्फ़िगरेशन है
उस निर्देशिका की फ़ाइलें पढ़ने योग्य हैं .
--सक्षम= , --अक्षम=
डिफ़ॉल्ट रूप से सेवा साइट-व्यापी सक्षम/अक्षम करें। ध्यान दें कि एक सेवा अक्षम है
साइट-वाइड को अभी भी प्रति रिपॉजिटरी में सक्षम किया जा सकता है यदि इसे ओवररिडेबल के रूप में चिह्नित किया गया हो
रिपोजिटरी एक कॉन्फ़िगरेशन आइटम के साथ सेवा को सक्षम बनाता है।
--अनुमति-ओवरराइड= , --forbid-override=
प्रति रिपॉजिटरी कॉन्फ़िगरेशन के साथ साइट-व्यापी डिफ़ॉल्ट को ओवरराइड करने की अनुमति दें/रोकें। द्वारा
डिफ़ॉल्ट, सभी सेवाएँ ओवरराइड हो सकती हैं।
--[नहीं-]जानकारीपूर्ण-त्रुटियाँ
जब सूचनात्मक त्रुटियाँ चालू होती हैं, तो git-डेमन अधिक वर्बोज़ त्रुटियों की रिपोर्ट करेगा
क्लाइंट, "रिपॉजिटरी नहीं" से "ऐसी कोई रिपॉजिटरी नहीं" जैसी स्थितियों को अलग करता है
निर्यात किया गया"। यह ग्राहकों के लिए अधिक सुविधाजनक है, लेकिन इसके बारे में जानकारी लीक हो सकती है
गैर-निर्यातित भंडारों का अस्तित्व। जब सूचनात्मक त्रुटियाँ सक्षम नहीं होती हैं, तो सभी
त्रुटियाँ क्लाइंट को "पहुंच अस्वीकृत" रिपोर्ट करती हैं। डिफ़ॉल्ट है --कोई-सूचनात्मक-त्रुटियाँ नहीं।
--एक्सेस-हुक=
हर बार जब कोई क्लाइंट कनेक्ट होता है, तो पहले उसके द्वारा निर्दिष्ट एक बाहरी कमांड चलाएँ
सेवा नाम के साथ (जैसे "अपलोड-पैक"), रिपॉजिटरी का पथ, होस्टनाम (%H),
कैनोनिकल होस्टनाम (%CH), आईपी एड्रेस (%IP), और टीसीपी पोर्ट (%P) इसकी कमांड-लाइन के रूप में
तर्क. बाहरी कमांड ए के साथ बाहर निकलकर सेवा को अस्वीकार करने का निर्णय ले सकता है
गैर-शून्य स्थिति (या शून्य स्थिति से बाहर निकलकर इसकी अनुमति देना)। इसे देख भी सकते हैं
अनुरोधकर्ता के बारे में जानने के लिए $REMOTE_ADDR और $REMOTE_PORT पर्यावरण चर
यह निर्णय लेते समय.
बाहरी कमांड वैकल्पिक रूप से अपने मानक आउटपुट के लिए एक पंक्ति लिख सकता है
जब अनुरोधकर्ता सेवा को अस्वीकार करता है तो उसे एक त्रुटि संदेश के रूप में भेजा जाता है।
अनुमत निर्देशिकाओं की श्वेतसूची में जोड़ने के लिए एक निर्देशिका। जब तक --strict-paths न हो
निर्दिष्ट इसमें प्रत्येक नामित निर्देशिका की उपनिर्देशिकाएँ भी शामिल होंगी।
सेवा
इसके कमांड-लाइन विकल्पों का उपयोग करके इन सेवाओं को विश्व स्तर पर सक्षम/अक्षम किया जा सकता है
आज्ञा। यदि बारीक नियंत्रण वांछित है (उदाहरण के लिए अनुमति देना)। Git संग्रह के विरुद्ध चलाया जाना है
केवल कुछ चयनित रिपॉजिटरी में डेमॉन कार्य करता है), प्रति-रिपॉजिटरी कॉन्फ़िगरेशन
फ़ाइल का उपयोग उन्हें सक्षम या अक्षम करने के लिए किया जा सकता है।
अपलोड-पैक
यह कार्य करता है Git फ़ेच-पैक और Git एलएस-रिमोट ग्राहक। यह डिफ़ॉल्ट रूप से सक्षम है, लेकिन a
रिपॉजिटरी daemon.uploadpack कॉन्फ़िगरेशन आइटम को गलत पर सेट करके इसे अक्षम कर सकती है।
अपलोड-संग्रह
यह कार्य करता है Git संग्रह --दूरस्थ. यह डिफ़ॉल्ट रूप से अक्षम है, लेकिन एक रिपॉजिटरी कर सकता है
daemon.uploadarch कॉन्फ़िगरेशन आइटम को सत्य पर सेट करके इसे सक्षम करें।
रिसीव-पैक
यह कार्य करता है Git भेज-पैक ग्राहक, अनाम पुश की अनुमति देते हैं। यह डिफ़ॉल्ट रूप से अक्षम होता है,
जैसा कि यहां है नहीं प्रोटोकॉल में प्रमाणीकरण (दूसरे शब्दों में, कोई भी धक्का दे सकता है
रिपॉजिटरी में कुछ भी, रेफरी को हटाने सहित)। यह पूरी तरह से एक के लिए है
बंद LAN सेटिंग जहां हर कोई मित्रवत है। इस सेवा को सेटिंग द्वारा सक्षम किया जा सकता है
daemon.receivepack कॉन्फ़िगरेशन आइटम सत्य पर।
उदाहरण
हम निम्नलिखित मानते हैं / Etc / सेवाओं
$ ग्रेप 9418 / Etc / सेवाओं
गिट 9418/टीसीपी # गिट संस्करण नियंत्रण प्रणाली
Git डेमॉन inetd सर्वर के रूप में
स्थापित करना Git डेमॉन एक inetd सेवा के रूप में जो किसी भी रिपॉजिटरी को संभालती है
श्वेतसूचीबद्ध निर्देशिकाओं का सेट, /pub/foo और /pub/bar, की तरह एक प्रविष्टि रखें
/etc/inetd सभी को एक पंक्ति में फ़ॉलो करना:
गिट स्ट्रीम टीसीपी अब किसी का इंतजार नहीं कर रहा है /usr/बिन/गिट
गिट डेमॉन --inetd --verbose --निर्यात-सभी
/पब/फू /पब/बार
Git डेमॉन वर्चुअल होस्ट के लिए inetd सर्वर के रूप में
स्थापित करना Git डेमॉन एक inetd सेवा के रूप में जो विभिन्न के लिए रिपॉजिटरी को संभालती है
वर्चुअल होस्ट, www.example.com और www.example.org, निम्नलिखित की तरह एक प्रविष्टि रखें
/etc/inetd सभी को एक पंक्ति में:
गिट स्ट्रीम टीसीपी अब किसी का इंतजार नहीं कर रहा है /usr/बिन/गिट
गिट डेमॉन --inetd --verbose --निर्यात-सभी
--interpolated-path=/pub/%H%D
/pub/www.example.org/software
/pub/www.example.com/software
/सॉफ़्टवेयर
इस उदाहरण में, रूट-स्तरीय निर्देशिका /पब में प्रत्येक के लिए एक उपनिर्देशिका होगी
वर्चुअल होस्ट नाम समर्थित. इसके अलावा, दोनों होस्ट केवल रिपॉजिटरी का विज्ञापन करते हैं
git://www.example.com/software/repo.git. 1.4.0 से पहले के ग्राहकों के लिए, एक सिम्लिंक
/सॉफ़्टवेयर को उचित डिफ़ॉल्ट रिपॉजिटरी में भी डाला जा सकता है।
Git डेमॉन वर्चुअल होस्ट के लिए नियमित डेमॉन के रूप में
स्थापित करना Git डेमॉन एक नियमित, गैर-इनेट सेवा के रूप में जो रिपॉजिटरी को संभालती है
एकाधिक वर्चुअल होस्ट अपने आईपी पते के आधार पर, डेमॉन को इस तरह शुरू करते हैं:
गिट डेमॉन --वर्बोज़ --निर्यात-सभी
--interpolated-path=/pub/%IP/%D
/पब/192.168.1.200/सॉफ्टवेयर
/पब/10.10.220.23/सॉफ्टवेयर
इस उदाहरण में, रूट-स्तरीय निर्देशिका /पब में प्रत्येक के लिए एक उपनिर्देशिका होगी
वर्चुअल होस्ट आईपी एड्रेस समर्थित। रिपोजिटरीज़ को अभी भी होस्टनाम द्वारा एक्सेस किया जा सकता है
हालाँकि, यह मानते हुए कि वे इन आईपी पतों के अनुरूप हैं।
प्रति रिपॉजिटरी में सेवाओं को चुनिंदा रूप से सक्षम/अक्षम करें
सक्षम करने के लिए Git संग्रह --दूरस्थ और अक्षम करें Git लाना एक भंडार के विरुद्ध, है
रिपॉजिटरी में कॉन्फ़िगरेशन फ़ाइल में निम्नलिखित (वह फ़ाइल है विन्यास के पास
सिर, refs और वस्तुओं).
[डेमन]
अपलोडपैक = गलत
अपलोडार्च = सत्य
वातावरण
Git डेमॉन REMOTE_ADDR को उससे जुड़े क्लाइंट के आईपी पते पर सेट करेगा, यदि
आईपी पता उपलब्ध है. REMOTE_ADDR हुक के वातावरण में उपलब्ध होगा
जब सेवाएँ निष्पादित की जाती हैं तो कॉल किया जाता है।
GIT
का हिस्सा Git(1) सुइट
onworks.net सेवाओं का उपयोग करके ऑनलाइन git-daemon का उपयोग करें