গিট পরিবেশন: আমি এটি সহজ চাই


139

আমি জানতে চাই যে কীভাবে খালি HTTP- র মাধ্যমে প্রকাশ করা যায় অনেকটা মার্কুরিয়ালের এইচজি পরিবেশনার মতো ! উইন্ডোজ / ওয়ার্ক বাক্সে এটি করুন:

git serve 

এবং তারপরে লিনাক্স বাক্সে সরাসরি যান:

git clone http://project project 

সমাপ্ত।


আপনি কি জানেন যে কোনও এসএনএন রেপোর গিট-এসএনএন ক্লোনিকে ক্লোন করা কঠিন? subtlegradient.com/articles/2008/04/22/cloning-a-git-svn-clone
bendin

আপনার লিনাক্স নোটবুক বিজ্ঞাপনের ব্যবহারের উপর কেন কেবল এসএনএন ইনস্টল করবেন না? গিটটি নতুন উষ্ণতা হতে পারে তবে সত্যিই মনে হচ্ছে আপনি এই বিশেষ ক্ষেত্রে আপনার জীবনকে অহেতুক জটিল করে তুলছেন।
বেন্ডিন

আমি জানি না যে এটি জটিল ছিল, আমি এখন পরিবেশ স্থাপন করায় আমি খুশি হয়েছি যে আপনি কথা বলেছেন ...
সেটোরি

1
প্রথমত: আমার নোটবুকটি এই ভিপিএন-এ প্রবেশ করার অনুমতি নেই, তাই আমি সরাসরি এসএনএন অ্যাক্সেস করতে পারি না। দ্বিতীয়ত: আমি আমার নিজস্ব সংগ্রহস্থলে প্রতিশ্রুতিবদ্ধ করতে চাই, গিট ব্যবহারের সম্পূর্ণ পয়েন্টটি তাই আমি স্থানীয় কমিট, শাখা এবং বেদাহীনভাবে একীভূত করতে পারি। আমি এখন এসএনএন ব্যবহার না করে বরং ক্র্যাম্পিং করে দেখছি।
সেটোরি

যদি আপনি অজগরটি ইনস্টল করেন, তবে একটি সরল git instaweb -d python
পদার্থ

উত্তর:


197

আপনার প্রকল্পে নেভিগেট করুন এবং নিম্নলিখিত সুইচগুলি দিয়ে গিট-ডিমন শুরু করুন:

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

এটি গিট-ডিমনকে বর্তমান ডিরেক্টরিতে সমস্ত প্রকল্প পরিবেশন করতে বলে (যা আমি ধরে নিই যে প্রকল্প ডিরেক্টরিতে .git / ফোল্ডার রয়েছে)। এটি যদি আপনি এটি বন্ধ করে রাখেন এবং খুব দ্রুত ব্যাক আপ শুরু করেন তবে একই ঠিকানাটি পুনরায় ব্যবহার করতেও এটি বলে tells

আপনি "গিটিজার্ভ" এর মতো নাম মনে রাখার সাথে একটি ব্যাচের স্ক্রিপ্টে রাখতে পারেন, যাতে আপনার আবার এটিকে আর টাইপ করার দরকার নেই। কিছু মন্তব্যে যেমন পরামর্শ দেওয়া হয়েছে, গিতের সাম্প্রতিক সংস্করণগুলিতে আপনি গিট কনফিগারেশনে একটি উপনাম যুক্ত করতে পারেন :

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

একবার সার্ভারে (আপনার উইন্ডোজ বাক্স) হয়ে গেলে আপনি এটি করতে পারেন:

git serve

গিট-ডিমন পরিবহণের জন্য গিট: // প্রোটোকল ব্যবহার করে, তাই ক্লায়েন্টের (আপনার লিনাক্স বাক্স) উপর, আপনাকে এটি করতে হবে:

git clone git://123.456.789.111/ project

3
এখানে বর্ণিত অনুসারে আপনি .gitconfig ফাইলটিতে আপনার একটি কমান্ড যুক্ত করতে পারেন: git.or.cz/gitwiki/Aliases#Serverepoonthespot
আরফেলিক্স


8
আমি মনে করি এটি লক্ষ্য করা গুরুত্বপূর্ণ যে যদিও git daemonঅন্যান্য গিট ক্লায়েন্টদের দ্বারা দূরবর্তী অ্যাক্সেসের অনুমতি দেয় তবে এতে ওয়েব ইন্টারফেসের অভাব রয়েছে যা hg serveসরবরাহ করে।
রব কেনেডি

4
আপনার .gitrc এ একটি উপাধি সরবরাহ করুন যেমন:serve = !git daemon --reuseaddr --verbose --base-path=. --export-all ./.git
dlamblin

1
অয়ন, মনে হচ্ছে ইউআরএলগুলি পরিবর্তিত হয়েছে এবং এটি এখন git.wiki.kernel.org/articles/a/l/i/Aliases.html
ক্রিস্টোফ মুলার

14

নিজের ব্যাচের স্ক্রিপ্ট লেখার চেয়ে গিটজোর ব্যবহার করুন । এটি কীভাবে গিট ডেমনকে সঠিকভাবে শুরু করবেন এবং এমডিএনএসের মাধ্যমে ক্লোন ইউআরএল সম্প্রচার করবে তা আপনি gitjour showলিনাক্স বাক্সে এবং অনুলিপি এবং পেস্ট করতে পারেন।

ডাঃ নিকের কাছ থেকে গিটজর ও অন্যান্য অনেক অনুরূপ সরঞ্জামের একটি সংক্ষিপ্তসার সহ একটি ভাল নিবন্ধ, রেলক্যাম্প08-এর জন্য কী কী ভ্রমণ এবং তারা হত্যাকারী অ্যাপ্লিকেশন


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

এছাড়াও, গিট ডেমনের মাধ্যমে ভাগ করার বিষয়ে আরও বিশদ টিউটোরিয়াল রয়েছে: 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
@ সাইয়েদরাকিব আপনার লাইটটিপিডি ইনস্টল করতে হবে, বা অ্যাপাচি 2, বা অন্য কোনও কিছুর দরকার আছে। ব্যক্তিগতভাবে আমি git instaweb -d webrickওএস এক্স-তে ব্যবহার করি , কারণ ওয়েবিকটি রুবির সাথে আসে, যা ওএস এক্স
পূর্বে

6
এই সরঞ্জামটি উইন্ডোজ সামঞ্জস্যপূর্ণ বলে মনে হচ্ছে না। পোস্টারটি যেমন উইন্ডোজ সরঞ্জামের জন্য জিজ্ঞাসা করছিল, এটি এই উত্তরের জন্য একটি গুরুত্বপূর্ণ বিষয়।
রবার্ট ম্যাকলিন

9

এখানে একটি বিকল্প উপায়। আপনার পাইথন ইনস্টল করা দরকার।

  • চালান git update-server-info
  • যেতে .gitডিরেক্টরি
  • চালান python -mSimpleHTTPServer

(কেবল আপনার গিটকনফাইগে একটি উপনাম তৈরি করুন)

এখন আপনি রেপো টানতে পারেন git pull http://HOST_NAME:8000/

পিএস: গিট ডেমন সলিউশনটি ব্যবহার করার সময় আপনি --base-path=.gitইউআরএলটি সেট করতে পারেনgit://HOST/


0

গিট-ওয়েবুই একটি গিট এক্সটেনশন যা একটি ওয়েব ভিত্তিক ব্যবহারকারী ইন্টারফেস এবং অন্যান্য কম্পিউটারগুলি থেকে ক্লোন / টান করার ক্ষমতা সরবরাহ করে

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 / কনফিগারেশনে নিম্নলিখিত লাইনগুলি যুক্ত করুন

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

তারপরে মৃত্যুদণ্ড কার্যকর করুন

git instaweb

0

গিট 2.21 (ফেব্রুয়ারী 2019) আপনাকে অজগর এবং git instaweb:

দেখুন 2eb14bb কমিট (28 জানুয়ারী 2019) দ্বারা Arti Zirk ( artizirk)
(দ্বারা একীভূত junio সি Hamano - gitster- মধ্যে abf39e3 কমিট , 05 ফেব্রুয়ারী 2019)

git-instaweb: পাইথন অন্তর্নির্মিত http.serverসমর্থন যোগ করুন

এই প্যাচটি git-instawebদিয়ে পাইথন http.serverসিজিআই হ্যান্ডলারটি -d pythonবিকল্পের মাধ্যমে ব্যবহার করে চালু করা সম্ভব ।

git-instawebhttp.server(ইন GIT_DIR/gitweb/) এর চারপাশে একটি ছোট্ট মোড়ক তৈরি করে যা সিজিআই হ্যান্ডলারের একটি সীমাবদ্ধতা দেখায় যেখানে সিজিআই স্ক্রিপ্টগুলি একটি cgi-binউপ-ডিরেক্টরিতে থাকতে হবে এবং ডিরেক্টরি সূচকটি সহজেই পরিবর্তন করা যায় না। বাস্তবায়ন ছোট রাখতে, gitwebইউআরএল চালানো হয় /cgi-bin/gitweb.cgiএবং খোলার সময় একটি স্বয়ংক্রিয় পুনঃনির্দেশ করা হয় /

উত্পাদিত মোড়ক পাইথন 2 এবং 3 উভয়ের সাথেই সামঞ্জস্যপূর্ণ।

পাইথনটি ডিফল্টরূপে বেশিরভাগ আধুনিক লিনাক্স ডিস্ট্রিবিউশনে ইনস্টল করা থাকে যা git instaweb -d pythonঅন্য কিছুর প্রয়োজন ছাড়াই চলতে সক্ষম করে ।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.