গিট-পুলের জন্য কীভাবে আমি আমার স্থানীয় সংগ্রহস্থল উপলব্ধ করতে পারি?


89

আমার একটি ওয়ার্কিং কপি রিপোজিটরি রয়েছে যা আমি কোনও সমস্যায় কাজ করছি না; এই সংগ্রহস্থলের উত্সটি গিটহাবে রয়েছে।

আমি আমার ওয়ার্কিং কপি রিপোজিটরিটি আমার বিল্ড মেশিনের (অন্য কোনও শারীরিক হোস্টের ভিএম) হিসাবে উত্স হিসাবে উপলব্ধ করতে চাই, যাতে আমার কাজকৃত অনুলিপিটি সম্পাদন করে যে বিল্ট মেশিনে যেতে হবে তা তৈরি করে পরীক্ষা করা যায় tested প্রথমে গিটহাব। আমার কাছে ইতিমধ্যে গিটহাবের সংগ্রহস্থল নির্মাণের জন্য একটি বিল্ড রয়েছে, তবে আমি এটি একটি "সোনালি" সংগ্রহস্থল / বিল্ড হতে চাই; উদাহরণস্বরূপ, যদি সেখানে কিছু যায়, গিটহাবের বিরুদ্ধে বিল্ডটি পাস করার নিশ্চয়তা দেওয়া উচিত।

আমি গিট ইউআরএলগুলিতে ডকুমেন্টেশনটি দেখেছি এবং দেখুন যে ফর্মটিতে একটি ইউআরএল ব্যবহার করার বিকল্প রয়েছে git://host.xz[:port]/path/to/repo.git/(উদাহরণস্বরূপ, গিট-ক্লোন ডকুমেন্টেশন )। ন্যূনতম কনফিগারেশন সহ আমি সবচেয়ে সহজতম পদ্ধতিতে এটি করতে চাই: আমার বিল্ড মেশিনে প্রকাশ করার জন্য আমাকে কোনও এসএসএইচ ডেমন বা ওয়েব সার্ভার সেট আপ করতে চাই না।

আমি উইন্ডোজ 7 এক্স 64 আরসি চালাচ্ছি, আমার এমএসএসজিট এবং টরটোইজিট ইনস্টল আছে এবং আমি ফায়ারওয়ালে গিটের ডিফল্ট পোর্ট (9814) খুলেছি। অনুমান করুন ওয়ার্কিং কপি রেপো রয়েছে D:\Visual Studio Projects\MyGitRepoএবং হোস্ট-নেম রয়েছে devbox। বিল্ড মেশিনটি উইন্ডোজ সার্ভার 2008 x64। আমি সংশ্লিষ্ট আউটপুট সহ বিল্ড মেশিনে নিম্নলিখিত কমান্ডটি চেষ্টা করছি:

D:\Integration>git clone "git://devbox/D:\Visual Studio Projects\MyGitRepo"
Initialized empty Git repository in D:/Integration/MyGitRepo/.git/
devbox[0: 192.168.0.2]: errno=No error
fatal: unable to connect a socket (No error)

আমি কিছু অনুপস্থিত করছি?


আপনি কি কেবল স্থানীয়ভাবে একটি ভাগ সেটআপ করতে পারবেন না এবং তারপরে আপনার বিল্ডম্যাচাইন থেকে 'গিট ক্লোন \\ ওয়ার্কম্যাচাইন \ ভাগ' করতে পারেন? সেরা / সবচেয়ে কার্যকর উপায় নয়, তবে সবচেয়ে সহজ কাজ।
জোয়াকিম এলফসন

উত্তর:


135

থেকে টানার জন্য একটি সংগ্রহস্থল স্থাপন করার জন্য পাঁচটি সম্ভাবনা রয়েছে:

  • স্থানীয় ফাইল সিস্টেম : git clone /path/to/repoবা git clone file://path/to/repo। আপনার যদি নেটওয়ার্ক সিস্টেমের ফাইল সিস্টেম থাকে তবে নেটওয়ার্কের খুব দক্ষ ব্যবহার না হলে সবচেয়ে কম কাজ করুন। (এটি জোয়াকিম এলফসন প্রস্তাবিত প্রায় হুবহু সমাধান )
  • HTTP- র প্রোটোকল : git clone http://example.com/repo। আপনার কোনও ওয়েব সার্ভারের প্রয়োজন , এবং "বোবা" প্রোটোকলগুলির মাধ্যমে আনার / টানানোর জন্য প্রয়োজনীয় তথ্য উত্পন্ন করার জন্য আপনাকে (সম্ভবত একটি হুক থেকে স্বয়ংক্রিয়ভাবে) গিট-আপডেট-সার্ভার-তথ্য চালাতে হবে।
  • এসএসএইচ : git clone ssh://example.com/srv/git/repoবা git clone example.com:/srv/git/repo। আপনাকে এসএসএইচ সার্ভার (এসএসএইচ ডেমন) সেটআপ করতে হবে এবং ক্লায়েন্টে এসএসএইচ ইনস্টল করা থাকতে হবে (যেমন এমএস উইন্ডোজে পুটিটিওয়াই)।
  • Git প্রোটোকল : git clone git://example.com/repo। আপনাকে সার্ভারে গিট-ডেমন চালাতে হবে ; বিশদগুলির জন্য ডকুমেন্টেশন দেখুন (আপনি এটিকে কেবল আনার জন্য স্বতন্ত্র প্রক্রিয়া হিসাবে চালাতে পারেন, পরিষেবা হিসাবে প্রয়োজনীয় রান নয়)। গিট-ডিমন গিটের একটি অংশ।
  • বান্ডেল : আপনি গিট-বান্ডেল কমান্ড ব্যবহার করে সার্ভারে বান্ডিল তৈরি করেন, এটিকে কোনও উপায়ে কোনও ক্লায়েন্ট মেশিনে স্থানান্তর করুন (এমনকি ইউএসবি মাধ্যমে) এবং ক্লোন ব্যবহার করে git clone file.bndl(যদি ক্লোনটি কাজ না করে তবে আপনি "গিট থ্রিম", "গিট রিমোট অ্যাড করতে পারেন "এবং" গিট আনুন ")।

আপনার উদাহরণে যা অনুপস্থিত তা সম্ভবত সার্ভারে গিট-ডেমন চালাচ্ছে। এটি, বা গিট-ডেমনকে ভুল কনফিগার করে।

দুর্ভাগ্যক্রমে আমি এমএস উইন্ডোজে পরিষেবা হিসাবে গিট-ডেমন চালাতে আপনাকে সহায়তা করতে পারি না। যদিও গিট-ডেমন কাজ করছে না সে সম্পর্কে এমএসজিজিটের শেষ সংস্করণে ঘোষণার কিছু নেই।


ঠিক আছে, সুতরাং আমাকে প্রত্যেক বার কিছু ইনস্টল করতে হবে বা ম্যানুয়ালি এটি একটি বান্ডিলের উপর অনুলিপি করা প্রয়োজন (সম্ভবত এটির মাধ্যমে স্ক্রিপ্ট করা, আমি মনে করি। প্রথম তিনটি বিকল্পের জন্যও কি গিট-ডিমন প্রয়োজন?
অ্যালিস্টায়ার

4
কেবলমাত্র "গিট প্রোটোকল" বিকল্পের সার্ভারে গিট-ডেমন চলমান দরকার। কেবলমাত্র "এসএসএইচ" এবং "এইচটিটিপি" বিকল্পের জন্য অতিরিক্ত সরঞ্জাম প্রয়োজন: হয় এসএসডিডি (এসএসএস সার্ভার) বা ওয়েব সার্ভার। বান্ডিল সমাধান হ'ল ম্যানুয়াল সমাধান।
জাকুব নরবস্কি

যদিও প্রশ্নটি 'টান' সম্পর্কে ছিল, পোস্টারটি অবশ্যই পরে 'গিট পুশ' চালানো থেকে সতর্ক হতে হবে, কারণ তিনি যে সংগ্রহশালাটি থেকে ক্লোনিং করছেন তা খালি নয়।
ইয়াহার

দয়া করে আপনি এইটি ব্যাখ্যা করতে পারেন, @ ইয়াহগার?
এস্টেস্টার্স

4
স্থানীয় ফাইল সিস্টেম বিকল্পের চেষ্টা করে অন্য কারও কাছে নোট করুন: ইউএনসির পথে অগ্রণী ব্যাকস্ল্যাশ থেকে বাঁচতে ভুলবেন না! :-)
অ্যালিস্টোরগুলি

17

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

git pull /path/to/repo master

(মাস্টার পরিবর্তে আপনি যে কোনও শাখার নাম রাখতে পারেন))


একটি ছোট্ট টিপ (বা আমি কীভাবে এই প্রশ্নটি পেয়েছি): ..<পথ / টু / রেপো> তে কাজ করার জন্য উপস্থিত হবে না; পরিবর্তে একটি পূর্ণ পথ ব্যবহার করুন।
দিমিত্রি টিমোফিভ

1

Ssh রুটটি ভালভাবে কাজ করে তবে একটি দূরবর্তী ssh সার্ভারের প্রয়োজন। আপনার যদি উইন্ডোজ প্ল্যাটফর্ম থাকে তবে সাইগউইন একটি ওয়ার্কিং এসএস সার্ভার সরবরাহ করে যা গিটের সাথে কাজ করে, তবে সাইগউইন গিট ব্যবহার করতে পারলে ম্যানুয়ালি গিট আপগ্রেড করুন ( http://alecthegeek.wordpress.com/2009/01/21/top-tip এ আমি কিছু ইঙ্গিত লিখেছি) -গ্রেড-গিট-অন-সাইগউইন / )।


1

প্রকৃত ফাইল আপলোডগুলি করতে সিটিকপি ব্যবহার করে আমি সম্প্রতি আমার গিট প্রকল্পগুলির একটি নিজেকে এইচটিটিপি সার্ভারে প্রতিলিপি করতে পরিবর্তন করেছি।

এটি বেশ সহজ, কেবল git update-server-infoআপনার সার্ভারের কিছু HTTP- অ্যাক্সেসযোগ্য ডিরেক্টরিতে .git ডিরেক্টরিটি আয়না করুন use আমি 'প্রজেক্ট.git' ব্যবহার করেছি, যা মোটামুটি সাধারণ।

HTTP: // সাইট / প্রজেক্ট-গিট থেকে গিট টান চ্যাম্পের মতো কাজ করে এবং সার্ভারে এফটিপি অ্যাক্সেস ব্যতীত আমার আর কিছুই লাগবে না, যদিও সাইটকপিটি ওয়েবড্যাভকেও সমর্থন করে।

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


1

আপনার মত যদি একটি পথ আছে

C:\Project\

এবং আপনি git initইতিমধ্যে করেছেন, সুতরাং আপনার একটি ফোল্ডারও আছে

C:\Project\.git\

আপনি এখন একটি নতুন ফোল্ডার তৈরি করুন

C:\.git\

সেই ফোল্ডারে যান এবং চালান git clone --bare ..\Project( খালি গুরুত্বপূর্ণ),
আপনার C:\Project\ফোল্ডারে ফিরে যান এবং একটি করুন git remote add-url local ..\.git\Project
এখন আপনি শুধু git add -A, git commit -m "HelloWorld"এবং git push local master

আপনি Projectফোল্ডারটি ভাগ করতে পারেন , এটিকে সংযুক্ত করতে Z:এবং git clone Z:\Projectকরতে পারেন - আপনি এখনই ব্যবহার করতে পারেন git pull origin masterএবং git push origin masterএক কম্পিউটার থেকে অন্য কম্পিউটারে পরিবর্তনগুলি ধাক্কা / টানতে পারেন।


0

যদি আপনার দূরবর্তী হোস্টটি একই উইন্ডোজ নেটওয়ার্কে থাকে, যেমন আপনি এটি \ রিমোটহোস্ট হিসাবে অ্যাক্সেস করতে পারেন, তবে আপনি এক্সপ্লোরারটিতে নেটওয়ার্ক ড্রাইভের মানচিত্র করতে পারেন, যাক z: -> \ রিমোটহোস্ট \ পুনঃনির্দেশক, তার পরে আপনি 'গিট ক্লোন / ক্লোন প্রকল্পে জেড / মাইপ্রজেক্ট '

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