“You need to resolve your current index first” এরর গিটে দেখা যায় এবং এর অর্থ হলো একটি মার্জ কনফ্লিক্ট আছে এবং আপনি কনফ্লিক্ট রিজলভ না করলে অন্য ব্রাঞ্চে চেকআউট করতে পারবেন না। এই এরর মেসেজটি বোঝায় যে একটি মার্জ ফেল করেছে বা ফাইলokkal কনফ্লিক্ট আছে।

এই ফাইলগুলো, মার্জ, এবং কনফ্লিক্ট কী? এই টার্মগুলো আপনার জন্য অজানা থাকবে যদি আপনি গিট ব্যবহার করতে নতুন হন। গিট একটি ভার্সন কন্ট্রোল প্ল্যাটফর্ম যা একাধিক মানুষকে একসাথে ফাইলগুলোর ওপর কাজ করতে দেয় এবং তাদের লোকাল কপি ক্লাউডে সংরক্ষিত কোডে পুশ করতে দেয়। এইভাবে আপনি যদি কিছু ডাউনলোড করা (বা ইতিমধ্যে পুশ করা) কোড পরিবর্তন করেন এবং আবার ক্লাউডে পুশ করেন, তবে পরিবর্তনগুলো ক্লাউডে আপনার লোকাল কপি দ্বারা ওভাররাইট হয়ে যাবে।
গিটের ব্রাঞ্চ কনসেপ্ট আছে। একটি মাস্টার ব্রাঞ্চ থাকে এবং সেটি থেকে অনেক ব্রাঞ্চ বrances আউট করে। এই এররটি বিশেষভাবে হয় যদি আপনি একটি ব্রাঞ্চ থেকে অন্য ব্রাঞ্চে সইচ করেন (চেকআউট ব্যবহার করে) এবং করেন্ট ব্রাঞ্চের ফাইলগুলিতে কনফ্লিক্ট থাকে। সেগুলো রিজলভ না হলে, আপনি ব্রাঞ্চ থেকে চেকআউট করতে পারবেন না।
Git এরর: You need to resolve your current index first-এর কারণ কী?
উপরোক্ত কথা বলা হয়েছে, এই এররটির কারণগুলো বেশ সীমিত। আপনি এই এরর পাবেন কারণ:
- একটি মার্জ ফেল করেছে এবং আপনাকে অন্যান্য টাস্কে এগিয়ে যাওয়ার আগে মার্জ কনফ্লিক্ট ঠিক করতে হবে।
- আপনার করেন্ট (বা টার্গেটেড ব্রাঞ্চ) ফাইলগুলিতে কনফ্লিক্ট আছে এবং এই কনফ্লিক্টের কারণে, আপনি ব্রাঞ্চ থেকে চেকআউট করতে বা কোড পুশ করতে পারবেন না।
সমাধান শুরু করার আগে, নিশ্চিত করুন আপনার কাছে প্রপার ভার্সন কন্ট্রোল আছে এবং অন্যান্য টিম মেম্বারদের কোড পরিবর্তন করা বন্ধ করে দেওয়া বুদ্ধিমানের কাজ কনফ্লিক্ট রিজলভ করার আগে।
সমাধান ১: মার্জ কনফ্লিক্ট রিজলভ করা
আপনার মার্জ যদি গিট দ্বারা অটোমেটিক্যালি রিজলভ না হয়, তবে এটি ইন্ডেক্স এবং ওয়ার্কিং ট্রি একটি স্পেশাল স্টেটে রেখে যা আপনাকে সব ইনফরমেশন দেয় যা কনফ্লিক্ট রিজলভ করতে দরকার। কনফ্লিক্ট যে ফাইলগুলিতে আছে সেগুলো ইন্ডেক্সে স্পেশালি মার্ক করা থাকবে এবং আপনি সমস্যাটি সমাধান করে ইন্ডেক্স আপডেট না করলে, আপনি এই এরর মেসেজ পाते থাকবেন।
- সকল কনফ্লিক্ট রিজলভ করুন। যেসব ফাইলে কনফ্লিক্ট আছে সেগুলো চেক করুন কারণ সেগুলো ইন্ডেক্স দ্বারা মার্ক করা থাকবে এবং সেগুলোতে যथাযথ পরিবর্তন করুন।
- সব কনফ্লিক্ট রিজল্ভ করার পর, ফাইলটি add করুন এবং তারপর commit করুন।
এক উদাহরণ হলো:
$ git add file.txt $ git commit
কমিট করার সময় আপনার ব্যক্তিগত কমেন্টারি যোগ করতে পারেন। এক উদাহরণ:
$ git commit –m “This is Appuals Git repository”
- কনফ্লিক্ট রিজল্ভ করার পর, আপনার এক্সিস্টিং ব্রাঞ্চ থেকে চেকআউট করার চেষ্টা করুন এবং দেখুন সমস্যা ফিক্স হয়েছে কিনা।
সমাধান ২: আপনার মার্জ রিভার্ট করা
অনেক কেস আছে যেখানে আপনি ব্রাঞ্চ মার্জ করেছেন এবং গুলো ব-iggling করে ফেলেছেন। সব কনফ্লিক্ট এবং কনফিউশনের কারণে, প্রজেক্টটি এখন একটি মেস এবং আপনার টিম মেম্বাররা আপনাকে দোষ দিচ্ছে। এই কেসে, আপনাকে পূর্বের কমিট রিভার্ট করতে হবে (মার্জ কমিট)। এটি পুরো মার্জকে анডু করবে এবং পুরো প্রজেক্টকে এমন একটি স্টেটে ফেরত আনবে যখন আপনি কোনো মার্জ করেননি। এটি লাইফসেভার হতে পারে আপনি যদি জিনিসগুলো রিপেয়ারের বাইরে মেস করে ফেলেন।
মার্জ রিভার্ট করতে, নিচের কমান্ডটি টাইপ করুন:
$ git reset -–merge
উপরের কমান্ডটি ইন্ডেক্স রিসেট করবে এবং ওয়ার্কিং ট্রিয়ের ফাইলগুলো আপডেট করবে যা ‘commit’ এবং ‘head’-এর মধ্যে ভিন্ন। যাইহোক, এটি সেসব ফাইল রাখবে যা ইন্ডেক্স এবং ওয়ার্কিং ট্রির মধ্যে ভিন্ন।
আপনি HEAD রিভার্ট করেও চেষ্টা করতে পারেন নিচের কমান্ড ব্যবহার করে:
$ git revert HEAD
আপনি যদি নির্দিষ্ট মার্জ কমিট সপসিফাই করতে চান যা আপনি রিভার্ট করতে চান, তবে আপনি একই রিভার্ট কমান্ড ব্যবহার করতে পারেন কিন্তু অ্যাডিশনাল প্যারামিটার সপসিফাই করে। মার্জ কমিটের SHA1 হ্যাশ ব্যবহার করা হবে। -m এরপর ১ বোঝায় আমরা মার্জের প্যারেন্ট সাইড রাখতে চাই (যে ব্রাঞ্চে আমরা মার্জ করছি)। এই রিভার্টের আউটকাম হলো গিট একটি নতুন কমিট তৈরি করবে যা মার্জ থেকে পরিবর্তনগুলো রোল ব্যাক করবে।
$ git revert -m 1 dd8d6f587fa24327d5f5afd6fa8c3e604189c8d4>