নিম্নলিখিত পরিস্থিতি বিবেচনা করুন:
- আপনার কাছে গিট সংগ্রহস্থলের ক্লোন রয়েছে
- আপনার কয়েকটি স্থানীয় কমিট রয়েছে (কমিটগুলি এখনও কোথাও ঠেলা যায়নি)
- রিমোট রিপোজিটরিতে নতুন কমিট রয়েছে যা আপনি এখনও মেলেনি
সুতরাং এর মতো কিছু:
আপনি যদি git pull
ডিফল্ট সেটিংস দিয়ে কার্যকর করেন তবে আপনি এই জাতীয় কিছু পাবেন:
গিটটি একত্রিত হয়ে যাওয়ার কারণ এটি।
যদিও একটি বিকল্প আছে। পরিবর্তে আপনি রিবেস করতে টানতে বলতে পারেন:
git pull --rebase
এবং আপনি এটি পাবেন:
আমার মতে, রিবেসড সংস্করণটির অনেকগুলি সুবিধা রয়েছে যা বেশিরভাগ ক্ষেত্রে আপনার কোড এবং ইতিহাস উভয়ই পরিষ্কার রাখে center হ্যাঁ, আপনার স্থানীয় কমিটের হ্যাশগুলি পরিবর্তিত হবে, তবে এর পরিবর্তে আপনি যে সহজ ইতিহাস পেয়েছেন তার জন্য মূল্য দিতে এটি একটি ছোট দামের মতো বলে মনে হচ্ছে।
কোনও উপায়েই আমি পরামর্শ দিচ্ছি না যে এটি কোনওভাবেই খারাপ বা একটি ভুল ডিফল্ট। কেন ডিফল্টর জন্য মার্জটিকে অগ্রাধিকার দেওয়া হতে পারে তার কারণগুলি ভেবে আমার কেবল সমস্যা হচ্ছে। কেন এটি বেছে নেওয়া হয়েছিল, সে সম্পর্কে কি আমাদের অন্তর্দৃষ্টি আছে? ডিফল্ট হিসাবে এটি আরও উপযুক্ত করে এমন কোনও সুবিধা রয়েছে কি?
এই প্রশ্নের প্রাথমিক অনুপ্রেরণা হ'ল আমার সংস্থাটি কীভাবে আমরা আমাদের সংগ্রহস্থলগুলি সংগঠিত ও পরিচালনা করি তার জন্য কিছু বেসলাইন মান (আশা করি, আরও গাইডলাইনগুলির মতো) প্রতিষ্ঠার চেষ্টা করছে যাতে তারা পূর্বে কাজ করেনি এমন একটি সংগ্রহস্থলের কাছে যেতে আরও সহজ করে তোলে। আমি একটি মামলা তৈরি করতে আগ্রহী যে আমাদের সাধারণত এই ধরণের পরিস্থিতিতে রিবেস করা উচিত (এবং সম্ভবত বিকাশকারীরা তাদের বিশ্বব্যাপী কনফিগারেশনটি ডিফল্টরূপে পুনরায় ফিরিয়ে আনার জন্য সুপারিশ করার জন্য), তবে আমি যদি এর বিরোধিতা করি তবে অবশ্যই আমি জিজ্ঞাসা করবো কেন রিবেস ইজ না '। ডিফল্ট টি যদি এটি দুর্দান্ত হয়। তাই আমি ভাবছি যে আমি এখানে কিছু মিস করছি।
এটি প্রস্তাবিত হয়েছে যে এই প্রশ্নটির একটি সদৃশ এটি কেন এতগুলি ওয়েবসাইটগুলি "গিট একীকরণ" এর চেয়ে "গিট রিবেস" পছন্দ করে? ; তবে, প্রশ্নটি কিছুটা এইটির বিপরীত । এটি একীভূতকরণের উপর পুনর্বাসনের যোগ্যতাগুলি নিয়ে আলোচনা করে, যখন এই প্রশ্নে রিবেস ওভার মার্জ করার সুবিধা সম্পর্কে জিজ্ঞাসা করা হয়। সেখানে উত্তরগুলি এটি প্রতিফলিত করে, একীভূত হওয়া এবং পুনর্বাসনের সুবিধাগুলিতে সমস্যাগুলিকে কেন্দ্র করে।