দুঃখের বিষয় আমার সাথে এটি নিয়মিত হয় এবং আমি git stash
যদি আমার ভুল বুঝতে পারি git commit
এবং git cherry-pick
অন্যথায় ব্যবহার করি তবে উভয় আদেশই অন্যান্য উত্তরে বেশ ভালভাবে ব্যাখ্যা করা হয়েছে
আমি এর জন্য একটি ব্যাখ্যা যোগ করতে চাই git checkout targetBranch
: এই কমান্ডটি কেবলমাত্র আপনার কার্যনির্বাহী ডিরেক্টরি সংরক্ষণ করবে এবং যদি স্নিপশটটি টার্গেটব্র্যাঙ্কের সাথে আপনার বর্তমান শাখার মতো একই ইতিহাসে থাকে
আপনি যদি ইতিমধ্যে আপনার পরিবর্তনগুলি প্রতিশ্রুতিবদ্ধ না করেন তবে নতুন শাখায় যাওয়ার জন্য গিট চেকআউটটি ব্যবহার করুন এবং তারপরে এগুলি স্বাভাবিকভাবে প্রতিশ্রুতিবদ্ধ
@ অ্যাম্বার বক্তব্য মিথ্যা নয়, যখন আপনি একটি সরাতে newBranch , git checkout -b newBranch
একটি নতুন পয়েন্টার তৈরি করা হয় এবং সঠিক একই আপনার বর্তমান শাখা হিসেবে কমিট এটা নির্দেশ করা হয়।
প্রকৃতপক্ষে, যদি আপনার এমন একটি অন্য শাখা হয়ে থাকে যা আপনার বর্তমান শাখার সাথে ইতিহাস ভাগ করে দেয় (একই প্রতিশ্রুতি উভয় বিন্দু) তবে আপনি "আপনার পরিবর্তনগুলি স্থানান্তরিত" করতে পারেনgit checkout targetBranch
যাইহোক, সাধারণত বিভিন্ন শাখা অর্থ পৃথক ইতিহাস, এবং গিট আপনাকে এই শাখাগুলির মধ্যে একটি নোংরা কার্যকরী ডিরেক্টরি বা স্টেজিং অঞ্চল দিয়ে স্যুইচ করতে দেয় না। git checkout -f targetBranch
এক্ষেত্রে আপনি হয় (ক্লিন এবং থ্রোওয়ে পরিবর্তন) বা git stage
+ git checkout targetBranch
( পরিবর্তনগুলি সাফ এবং সংরক্ষণ করুন ) করতে পারেন, কেবল দৌড়ানোই git checkout targetBranch
একটি ত্রুটি দেয়:
ত্রুটি: নিম্নলিখিত ফাইলগুলিতে আপনার স্থানীয় পরিবর্তনগুলি চেকআউট দ্বারা ওভাররাইট করা হবে: ... আপনার শাখাগুলি স্যুইচ করার আগে দয়া করে আপনার পরিবর্তনগুলি সংশোধন করুন বা সেগুলি স্ট্যাশ করুন। গর্ভপাত