सेवा करें: मैं इसे इतना आसान चाहूंगा


139

मैं जानना चाहता हूँ कि कैसे बस http = ज्यादा पर प्रकाशित किया जा सकता है जैसे कि Mercurial की hg सर्व! Windows / वर्क बॉक्स पर ऐसा करें:

git serve 

और फिर लिनक्स बॉक्स SIMPLY पर जाएं:

git clone http://project project 

ख़त्म होना।


क्या आप जानते हैं कि एक svn रेपो के git-svn क्लोन क्लोन करना मुश्किल है? subtlegradient.com/articles/2008/04/22/cloning-a-git-svn-clone
bendin

क्यों न सिर्फ अपने linux नोटबुक विज्ञापन उपयोग पर svn स्थापित करें सीधे प्रोजेक्ट रिपॉजिटरी से चेक आउट करें? गेट नई हॉटनेस हो सकती है, लेकिन यह वास्तव में ऐसा लगता है जैसे आप इस विशेष मामले में अपने जीवन को अनावश्यक रूप से जटिल बना रहे हैं।
बेंडिन

बेंडिन नहीं, मुझे नहीं पता था कि यह बहुत मुश्किल था, क्योंकि अब माहौल सेट करने से आपको खुशी है कि आपने बात की ...
सेतोरी

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

यदि आपने अजगर को स्थापित किया है, तो एक साधारण git instaweb -d pythonखुरदरा हो सकता है (Git 2.21, Feb. 2019 के साथ): नीचे मेरा जवाब देखें
VONC

जवाबों:


197

अपनी परियोजना में नेविगेट करें और निम्नलिखित स्विच के साथ गिट-डेमन शुरू करें:

cd project
git daemon --reuseaddr --base-path=. --export-all --verbose

यह गिट-डेमन को वर्तमान निर्देशिका के अंदर सभी परियोजनाओं की सेवा करने के लिए कहता है (जो मुझे लगता है कि परियोजना निर्देशिका है।। वोटर / फ़ोल्डर)। यह उसी पते को फिर से उपयोग करने के लिए भी कहता है यदि आप इसे बंद कर देते हैं और इसे बहुत तेजी से वापस शुरू करते हैं।

आप इसे "giterve" जैसे आसान नाम के साथ एक बैच स्क्रिप्ट में डाल सकते हैं, इसलिए आपको इसे फिर से लिखने की ज़रूरत नहीं है। जैसा कि कुछ टिप्पणियों में सुझाया गया है, Git के हाल के संस्करणों में आप Git config में एक उपनाम जोड़ सकते हैं :

[alias]
    serve = !git daemon --reuseaddr --verbose --base-path=. --export-all ./.git

एक बार सर्वर पर किया गया (आपका विंडोज बॉक्स), आप कर सकते हैं:

git serve

git-daemon परिवहन के लिए git: // प्रोटोकॉल का उपयोग करता है, इसलिए क्लाइंट (आपके लिनक्स बॉक्स) पर, आपको करने की आवश्यकता होगी:

git clone git://123.456.789.111/ project

3
: आप करने के लिए आप .gitconfig फ़ाइल के रूप में यहाँ वर्णित उपनाम के रूप में कमांड जोड़ सकते हैं git.or.cz/gitwiki/Aliases#Serverepoonthespot
RFelix


8
मुझे लगता है कि यह ध्यान रखना महत्वपूर्ण है कि यद्यपि git daemonअन्य गिट ग्राहकों द्वारा रिमोट एक्सेस की अनुमति है, लेकिन इसमें वेब इंटरफ़ेस की कमी है जो hg serveप्रदान करता है।
रोब कैनेडी

4
अपने .gitrc में एक उपनाम की सेवा करें:serve = !git daemon --reuseaddr --verbose --base-path=. --export-all ./.git
dlamblin

1
@Aeon, ऐसा लगता है कि URL बदल गए हैं और अब यह git.wiki.kernel.org/articles/a/l/i/Aliases.html
क्रिस्टोफ़ मुलर

14

अपनी बैच स्क्रिप्ट लिखने के बजाय, gitjour का उपयोग करें । यह जानता है कि git daemon को सही तरीके से कैसे शुरू किया जाए और क्लोन URL को mDNS के माध्यम से प्रसारित किया जाए ताकि आप gitjour showलिनक्स बॉक्स पर कर सकें और कॉपी और पेस्ट कर सकें ।

इसके अलावा gitjour के अवलोकन के साथ एक अच्छा लेख और डॉ निक से कई अन्य समान उपकरण, व्हाट्सएप * पत्रिकाएं हैं और वे RailsCamp08 के लिए किलर ऐप क्यों हैं


13

वर्तमान में दो उपनामों का उपयोग कर रहे हैं - सेवा और हब। केवल पढ़ने के लिए साझा करें और पढ़ने / लिखने के लिए हब की सेवा करें:

[alias]
  serve = !git daemon --base-path=. --export-all --reuseaddr --informative-errors --verbose
  hub = !git daemon --base-path=. --export-all --enable=receive-pack --reuseaddr --informative-errors --verbose

इसके अलावा, git daemon के माध्यम से साझा करने के बारे में अधिक विस्तृत ट्यूटोरियल है: http://l.rw.rw/git-daemon


12

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

Git-instaweb

$ git instaweb -d apache2 --start
$ lynx localhost:1234

यह कहता हैlighttpd not found. Install lighttpd or use --httpd to specify another httpd daemon.
रकीब

4
@syedrakib आपको लाइटटैप स्थापित करने की आवश्यकता होगी, या Apache2, या कुछ और। व्यक्तिगत रूप से मैं git instaweb -d webrickओएस एक्स पर उपयोग करता हूं , क्योंकि वेब्रिक रूबी के साथ आता है, जो ओएस एक्स पर पूर्वस्थापित है।
मार्टिज़न हेमेल्स

6
यह उपकरण Windows संगत प्रतीत नहीं होता है। जैसा कि पोस्टर विंडोज टूल के लिए पूछ रहा था, वह इस उत्तर के लिए एक महत्वपूर्ण कारक है।
रॉबर्ट मैकलेन

9

यहाँ एक वैकल्पिक तरीका है। आपको अजगर को स्थापित करने की आवश्यकता होगी।

  • Daud git update-server-info
  • .gitनिर्देशिका में जाओ
  • Daud python -mSimpleHTTPServer

(बस अपने gitconfig में एक उपनाम बनाएं)

अब आप रेपो को साथ खींच सकते हैं git pull http://HOST_NAME:8000/

पुनश्च: जब git डेमन समाधान का उपयोग कर आप सेट कर सकते हैं --base-path=.gitतो यूआरएल हैgit://HOST/


0

git-webui एक git एक्सटेंशन है जो एक वेब आधारित उपयोगकर्ता इंटरफ़ेस और अन्य कंप्यूटरों से क्लोन / खींचने की क्षमता प्रदान करता है

https://github.com/alberthier/git-webui

$ cd my_git_repo
$ git webui

अन्य लोग कर सकते हैं

$ git clone http://<ip-of-your-computer>:8000/ repoclone

या

$ git pull http://<ip-of-your-computer>:8000/

मैंने बस इसके साथ आँख बंद करके कोशिश की। मैं क्लोन क्लोन करने में सक्षम हूं लेकिन वेबगई तक पहुंचने में सक्षम नहीं हूं। ऐसा लगता है कि ब्राउज़र आपके सर्वर से प्रतिक्रिया की प्रतीक्षा कर रहा है।
श्री

0

.Git / config में निम्न पंक्तियाँ जोड़ें

[instaweb]
               local = true
               httpd = webrick
               port = 4231

फिर निष्पादित करें

git instaweb

0

Git 2.21 (फरवरी 2019) आपको अजगर और git instaweb:

Arti Zirk ( ) द्वारा प्रतिबद्ध 2eb14bb (28 जनवरी 2019) देखें । (द्वारा विलय Junio सी Hamano - - में abf39e3 प्रतिबद्ध , 05 फरवरी 2019)artizirk
gitster

git-instaweb: पायथन बेसिन http.serverसमर्थन जोड़ें

इस पैच के साथ विकल्प के माध्यम से git-instawebपायथन http.serverसीजीआई हैंडलर का उपयोग करके लॉन्च करना संभव है -d python

git-instawebएक छोटे रैपर को http.server(इन GIT_DIR/gitweb/) के आसपास उत्पन्न करता है जो सीजीआई हैंडलर की एक सीमा को संबोधित करता है जहां सीजीआई स्क्रिप्ट को एक cgi-binउपनिर्देशिका में होना चाहिए और निर्देशिका सूचकांक आसानी से नहीं बदला जा सकता है। कार्यान्वयन को छोटा रखने के लिए, gitweburl पर चल रहा है /cgi-bin/gitweb.cgiऔर खोलने पर एक स्वचालित पुनर्निर्देशन किया जाता है /

उत्पन्न रैपर पायथन 2 और 3 दोनों के साथ संगत है।

पायथन डिफ़ॉल्ट रूप से अधिकांश आधुनिक लिनक्स वितरणों पर स्थापित है जो git instaweb -d pythonबिना किसी और चीज की आवश्यकता के चलने में सक्षम बनाता है।

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