আমি কীভাবে সরকারী ভাণ্ডার কাঁটাতে পারি, তবে আমার কাঁটাচামচটি ব্যক্তিগত করতে পারি? আমার কাছে ব্যক্তিগত সংগ্রহস্থলগুলিকে সমর্থন করার জন্য সাবস্ক্রিপশন রয়েছে।
আমি কীভাবে সরকারী ভাণ্ডার কাঁটাতে পারি, তবে আমার কাঁটাচামচটি ব্যক্তিগত করতে পারি? আমার কাছে ব্যক্তিগত সংগ্রহস্থলগুলিকে সমর্থন করার জন্য সাবস্ক্রিপশন রয়েছে।
উত্তর:
উত্তরগুলি সঠিক তবে পাবলিক রেপো এবং কাঁটাচামচগুলির মধ্যে কীভাবে কোড সিঙ্ক করবেন তা উল্লেখ করবেন না।
এখানে পূর্ণ কর্মপ্রবাহ (আমরা ওপেন সোর্সিংয়ের প্রতিক্রিয়া নেটিভের আগে এটি সম্পন্ন করেছি ):
প্রথমে অন্যরা যেমন বলেছিলেন তেমনই রেপোটিকে নকল করুন (বিশদ এখানে ):
গিথুব ইউআইয়েরprivate-repo
মাধ্যমে একটি নতুন রেপো তৈরি করুন (আসুন এটি কল করুন ) । তারপর:
git clone --bare https://github.com/exampleuser/public-repo.git
cd public-repo.git
git push --mirror https://github.com/yourname/private-repo.git
cd ..
rm -rf public-repo.git
বেসরকারী রেপো ক্লোন করুন যাতে আপনি এটিতে কাজ করতে পারেন:
git clone https://github.com/yourname/private-repo.git
cd private-repo
make some changes
git commit
git push origin master
পাবলিক রেপো থেকে নতুন উত্তাপ টানতে:
cd private-repo
git remote add public https://github.com/exampleuser/public-repo.git
git pull public master # Creates a merge commit
git push origin master
দুর্দান্ত, আপনার ব্যক্তিগত রেপোতে এখন সর্বজনীন রেপো এবং আপনার পরিবর্তনগুলির সর্বশেষতম কোড রয়েছে।
অবশেষে, একটি টানা অনুরোধের জন্য ব্যক্তিগত রেপো -> সর্বজনীন রেপো তৈরি করতে:
পাবলিক রেপোর কাঁটাচামচ তৈরি করতে গিটহাব ইউআই ব্যবহার করুন (পাবলিক রেপো পৃষ্ঠার উপরের ডানদিকে ছোট "কাঁটাচামচ" বোতাম)। তারপর:
git clone https://github.com/yourname/the-fork.git
cd the-fork
git remote add private_repo_yourname https://github.com/yourname/private-repo.git
git checkout -b pull_request_yourname
git pull private_repo_yourname master
git push origin pull_request_yourname
এখন আপনি এখানে বর্ণিত হিসাবে পাবলিক-রেপোর জন্য গিথুব ইউআইয়ের মাধ্যমে একটি টান অনুরোধ তৈরি করতে পারেন ।
একবার প্রকল্পের মালিকরা আপনার টানার অনুরোধ পর্যালোচনা করলে তারা এটিকে মার্জ করতে পারে।
অবশ্যই পুরো প্রক্রিয়াটি পুনরাবৃত্তি করা যেতে পারে (যেখানে আপনি রিমোটগুলি যুক্ত করবেন কেবল সেই পদক্ষেপগুলি ছেড়ে দিন)।
git clone
দূরবর্তী ট্র্যাকিং শাখাগুলি স্থাপন করবে এবং সম্ভবত আপনি ক্লোনিং রেপোতে এমন কোনও অন্য কনফিগারেশন স্থাপন করবেন যা আপনি সত্যিই চান না। যেখানে কোনও --bare ক্লোনটি কেবল রিমোট থেকে .git দিরের অনুলিপি করে।
git status
আপ টু ডেট সব কিছু দেখায়, আমি যেভাবেই পরিবর্তন করি না কেন কার্যকারী গাছ পরিষ্কার করে। ফলস্বরূপ আমি কোন কিছু করতে এবং চাপ দিতে পারি না। এটি চেষ্টা করার জন্য আমি আরও নতুন 2 বার তৈরি করা নতুন ব্যক্তিগত রেপো মুছে ফেলেছি কিন্তু এই একই সমস্যাটিতে চালিত হতে থাকি। কোনও পরামর্শ?
এখন আর একটি বিকল্প আছে (জানুয়ারি -2015)
বর্তমান উত্তরগুলি কিছুটা পুরানো, তাই স্পষ্টতার জন্য:
সংক্ষিপ্ত উত্তরটি হ'ল:
এটি গিটহাবের নথিভুক্ত: সদৃশ-এ-সংগ্রহস্থল
আপনাকে রেপো সদৃশ করতে হবে
আপনি এই দস্তাবেজটি দেখতে পাবেন (গিথুব থেকে)
কাঁটাচামচা না করে কোনও সংগ্রহশালার সদৃশ তৈরি করতে, আপনাকে মূল সংগ্রহস্থলের বিরুদ্ধে একটি বিশেষ ক্লোন কমান্ড চালাতে হবে এবং নতুনটিতে মিরর-পুশ করতে হবে।
নিম্নলিখিত ক্ষেত্রে, আপনি যে ধরণের সংগ্রহের দিকে ধাক্কা দেওয়ার চেষ্টা করছেন - যেমন উদাহরণকারক / নতুন-সংগ্রহস্থল বা উদাহরণস্বরূপ / মিরর করা - ইতিমধ্যে গিটহাবে উপস্থিত থাকতে হবে। আরও তথ্যের জন্য "একটি নতুন সংগ্রহশালা তৈরি করা" দেখুন।
একটি ভান্ডার মিরর করছি
সঠিক সদৃশ তৈরি করতে আপনার খালি-ক্লোন এবং আয়না-পুশ উভয়ই সম্পাদন করতে হবে।
কমান্ড লাইনটি খুলুন এবং এই আদেশগুলি টাইপ করুন:
$ git clone --bare https://github.com/exampleuser/old-repository.git # Make a bare clone of the repository $ cd old-repository.git $ git push --mirror https://github.com/exampleuser/new-repository.git # Mirror-push to the new repository $ cd .. $ rm -rf old-repository.git # Remove our temporary local repository
আপনি যদি আসল থেকে আপডেট পাওয়ার সাথে সাথে অন্য কোনও জায়গায় কোনও সংগ্রহস্থলটি আয়না করতে চান তবে আপনি একটি আয়না ক্লোন করতে পারেন এবং পর্যায়ক্রমে পরিবর্তনগুলি ধাক্কা দিতে পারেন।
$ git clone --mirror https://github.com/exampleuser/repository-to-mirror.git # Make a bare mirrored clone of the repository $ cd repository-to-mirror.git $ git remote set-url --push origin https://github.com/exampleuser/mirrored # Set the push location to your mirror
খালি ক্লোনটির মতোই, একটি মিররযুক্ত ক্লোনটিতে সমস্ত দূরবর্তী শাখা এবং ট্যাগগুলি অন্তর্ভুক্ত থাকে তবে প্রতিটি স্থানীয় রেফারেন্স প্রতিবার আপনি যখনই পাবেন সেগুলি ওভাররাইট করা হবে, তাই এটি সর্বদা আসল সংগ্রহস্থলের সমান হবে। পুশ করার জন্য ইউআরএল সেট করা আপনার আয়নাতে এগিয়ে যাওয়া সহজ করে। আপনার আয়না আপডেট করার জন্য, আপডেটগুলি আনুন এবং ধাক্কা দিন, যা ক্রোন জব চালিয়ে স্বয়ংক্রিয় করা যেতে পারে।
$ git fetch -p origin $ git push --mirror
গিটহাবের এখন একটি আমদানি বিকল্প রয়েছে যা আপনাকে আপনার নতুন আমদানি করা সংগ্রহস্থল পাবলিক বা বেসরকারী যা চান তা চয়ন করতে দেয়