এটি আমি প্রায়শই ব্যবহার করি:
git fetch upstream develop;
git reset --hard upstream/develop;
git clean -d --force;
নোট আপনার স্থানীয় মাস্টার পরিবর্তন করতে এটি ভাল অনুশীলন না করার / শাখা বিকাশ, কিন্তু এর পরিবর্তে পরিবর্তনের টাইপ দ্বারা prepended কোন পরিবর্তন জন্য আরেকটি শাখা, শাখার নাম সঙ্গে চেকআউট, যেমন feat/
, chore/
,fix/
, ইত্যাদি সুতরাং আপনি শুধুমাত্র প্রয়োজন পরিবর্তন টানুন, মাস্টার থেকে কোনও পরিবর্তন ঠেলাবেন না। অন্য শাখাগুলির জন্য একই জিনিস যা অন্যরা অবদান রাখে। সুতরাং উপরেরটি কেবল তখনই ব্যবহার করা উচিত যখন আপনি অন্যদের দ্বারা প্রতিশ্রুতিবদ্ধ একটি শাখায় পরিবর্তন ঘটানো হয়েছে এবং পুনরায় সেট করার দরকার পড়ে। অন্যথায় ভবিষ্যতে অন্য যে শাখায় চাপ দেওয়া হয় তার পরিবর্তে চেকআউট করে চেক আউট শাখার মাধ্যমে উক্ত শাখায় চাপ দিন।
আপনি যদি আপনার স্থানীয় শাখাটি আপস্ট্রি শাখায় সর্বশেষ প্রতিশ্রুতিতে পুনরায় সেট করতে চান তবে আমার পক্ষে এখন পর্যন্ত কী কাজ করে তা হল:
আপনার রিমোটগুলি পরীক্ষা করে দেখুন, নিশ্চিত করুন যে আপনার প্রবাহ এবং উত্সটি আপনি যা প্রত্যাশা করেছেন তা প্রত্যাশিত না হলে ব্যবহার করুন git remote add upstream <insert URL>
, যেমন আপনি যে মূল গিটহাব রেপো থেকে সংগ্রহ করেছিলেন, এবং / অথবা git remote add origin <insert URL of the forked GitHub repo>
।
git remote --verbose
git checkout develop;
git commit -m "Saving work.";
git branch saved-work;
git fetch upstream develop;
git reset --hard upstream/develop;
git clean -d --force
গিটিহাব-এ, কাজটি সংরক্ষণের জন্য আপনি স্থানীয় নামে একই নামে শাখাটিও চেকআউট করতে পারেন, যদিও স্থানীয় সংরক্ষণিত-কার্য শাখার মতো অরিজিন বিকাশ একই পরিবর্তন রয়েছে তবে এটি প্রয়োজনীয় নয়। আমি উদাহরণ হিসাবে বিকাশকারী শাখা ব্যবহার করছি, তবে এটি কোনও বিদ্যমান শাখার নাম হতে পারে।
git add .
git commit -m "Reset to upstream/develop"
git push --force origin develop
তারপরে, যখন কোনও দ্বন্দ্ব রয়েছে, যখন বিকাশের পরিবর্তনগুলি সংরক্ষণ করে আপনার অন্য কোনও শাখার সাথে এই পরিবর্তনগুলি মার্জ করতে হবে, ব্যবহার করুন:
git merge -s recursive -X theirs develop
ব্যবহারের সময়
git merge -s recursive -X ours develop
শাখা_নামের বিরোধী পরিবর্তনগুলি সংরক্ষণ করতে। অন্যথায় সাথে একটি মার্জারুল ব্যবহার করুন git mergetool
।
একসাথে সমস্ত পরিবর্তন সহ:
git commit -m "Saving work.";
git branch saved-work;
git checkout develop;
git fetch upstream develop;
git reset --hard upstream/develop;
git clean -d --force;
git add .;
git commit -m "Reset to upstream/develop";
git push --force origin develop;
git checkout branch_name;
git merge develop;
নোট করুন যে আপস্ট্রিম / ডেভেলপ করার পরিবর্তে আপনি কমিট হ্যাশ, অন্যান্য শাখার নাম ইত্যাদি ব্যবহার করতে পারেন ইত্যাদি, যেমন ওয়াল মাই জেডএস-এর মতো একটি সি এল এল সরঞ্জাম ব্যবহার করুন যাতে আপনার শাখাটি সবুজ কিনা তা নির্দেশ করে যে প্রতিশ্রুতিবদ্ধ হওয়ার মতো কিছুই নেই এবং কার্যনির্বাহী ডিরেক্টরি পরিষ্কার ( যা নিশ্চিত বা এটি দ্বারা যাচাইযোগ্য git status
)। নোট যে এটি আসলে, বিকাশ মূল প্রজেক্টের যদি কিছু স্বয়ংক্রিয়ভাবে একটি কমিট দ্বারা, যেমন ইউএমএল ডায়াগ্রামে, লাইসেন্স হেডার, ইত্যাদি জুড়েছি তুলনায় করে যোগ করতে পারেন, যাতে ক্ষেত্রে, তারপর আপনি পরিবর্তন টান পারে origin develop
থেকে upstream develop
, যদি প্রয়োজন ছিল।
git status
আপনার দ্বিতীয় কমান্ডgit reset --hard HEAD
ব্যর্থ হয়েছে। যদিও আপনি এটি আউটপুট আটকান নি। → অসম্পূর্ণ প্রশ্ন।