ত্রুটি "আপনাকে প্রথমে আপনার বর্তমান সূচকটি সমাধান করতে হবে৷ ” গিট-এ ঘটে এবং এর অর্থ হল একটি মার্জ দ্বন্দ্ব আছে এবং আপনি যদি দ্বন্দ্ব সমাধান না করেন, আপনাকে অন্য শাখায় চেকআউট করার অনুমতি দেওয়া হবে না। এই ত্রুটি বার্তাটিও বোঝায় যে একটি মার্জ ব্যর্থ হয়েছে বা ফাইলগুলির সাথে বিরোধ রয়েছে৷
এই সব ফাইল, মার্জ, এবং দ্বন্দ্ব কি? আপনি যদি গিট ব্যবহারে শিক্ষানবিস হন তবে এই শর্তাবলী আপনার কাছে অজানা থাকবে। গিট হল একটি সংস্করণ নিয়ন্ত্রণ প্ল্যাটফর্ম যা অনেক লোককে একসাথে ফাইলগুলিতে কাজ করতে এবং ক্লাউডে সংরক্ষিত কোডের স্থানীয় অনুলিপিটি পুশ করতে দেয়। এইভাবে আপনি যদি কিছু ডাউনলোড করা (বা ইতিমধ্যে পুশ করা) কোড পরিবর্তন করে আবার ক্লাউডে পুশ করেন, তাহলে পরিবর্তনগুলি আপনার স্থানীয় কপি দ্বারা ক্লাউডে ওভাররাইট করা হবে।
Git এর শাখার ধারণা আছে। একটি মাস্টার শাখা রয়েছে এবং এটি থেকে আরও কয়েকটি শাখা রয়েছে। এই ত্রুটিটি বিশেষভাবে ঘটে যদি আপনি একটি শাখা থেকে অন্য শাখায় (চেকআউট ব্যবহার করে) স্যুইচ করছেন এবং বর্তমান শাখার ফাইলগুলিতে দ্বন্দ্ব রয়েছে। যদি সেগুলি সমাধান না করা হয়, আপনি শাখা পরিবর্তন করতে পারবেন না৷
৷গিট ত্রুটির কারণ কী:আপনাকে প্রথমে আপনার বর্তমান সূচকটি সমাধান করতে হবে?
যেমন আগে উল্লেখ করা হয়েছে, এই ত্রুটির কারণগুলি বেশ সীমিত। আপনি এই ত্রুটিটি অনুভব করবেন কারণ:
- একটি একত্রীকরণ ব্যর্থ হয়েছে এবং অন্যান্য কাজের সাথে এগিয়ে যাওয়ার আগে আপনাকে মার্জ বিরোধের সমাধান করতে হবে।
- এখানে দ্বন্দ্ব আছে আপনার বর্তমান (বা লক্ষ্যযুক্ত শাখা) ফাইলগুলিতে এবং এই দ্বন্দ্বগুলির কারণে, আপনি একটি শাখা বা পুশ কোড চেক আউট করতে সক্ষম হবেন না৷
আপনি সমাধানের সাথে এগিয়ে যাওয়ার আগে, আপনার কাছে সঠিক সংস্করণ নিয়ন্ত্রণ আছে তা নিশ্চিত করুন৷ এবং বিরোধের সমাধান করার আগে দলের অন্যান্য সদস্যদের কোড পরিবর্তন করা থেকে বিরত রাখা বুদ্ধিমানের কাজ।
সমাধান 1:মার্জ দ্বন্দ্বের সমাধান
যদি আপনার একত্রীকরণ স্বয়ংক্রিয়ভাবে গিট দ্বারা সমাধান না হয়, তাহলে এটি সূচী এবং কার্যকারী গাছটিকে একটি বিশেষ অবস্থায় ছেড়ে দেয় যা আপনাকে একত্রীকরণের সমাধান করার জন্য প্রয়োজনীয় সমস্ত তথ্য দিতে সহায়তা করে। যে ফাইলগুলিতে বিরোধ রয়েছে সেগুলিকে বিশেষভাবে সূচীতে চিহ্নিত করা হবে এবং যতক্ষণ না আপনি সমস্যার সমাধান না করেন এবং সূচক আপডেট না করেন, আপনি এই ত্রুটি বার্তাটি পেতে থাকবেন৷
- সমস্ত দ্বন্দ্বের সমাধান করুন . যে ফাইলগুলিতে দ্বন্দ্ব আছে সেগুলি পরীক্ষা করুন কারণ সেগুলিকে সূচী দ্বারা চিহ্নিত করা হবে এবং সেই অনুযায়ী পরিবর্তন করুন৷
- আপনি বিদ্যমান সমস্ত দ্বন্দ্ব সমাধান করার পরে, যোগ করুন ফাইল এবং তারপর কমিট .
একটি উদাহরণ হল:
$ git add file.txt $ git commit
কমিট করার সময় আপনি আপনার ব্যক্তিগত মন্তব্য যোগ করতে পারেন। একটি উদাহরণ হল:
$ git commit –m “This is Appuals Git repository”
- আপনি দ্বন্দ্ব সমাধান করার পরে, আপনার বিদ্যমান শাখা থেকে চেক আউট করার চেষ্টা করুন এবং সমস্যাটি সমাধান করা হয়েছে কিনা দেখুন৷
সমাধান 2:আপনার মার্জ প্রত্যাবর্তন
এমন অনেক ক্ষেত্রে রয়েছে যেখানে আপনি শাখাগুলিকে একত্রিত করেছেন এবং তালগোল পাকিয়েছেন৷ সমস্ত দ্বন্দ্ব এবং বিভ্রান্তির কারণে, প্রকল্পটি এখন একটি জগাখিচুড়ি এবং আপনার দলের সদস্যরা এর জন্য আপনাকে দায়ী করছে। এই ক্ষেত্রে, আপনাকে আগের প্রতিশ্রুতি প্রত্যাবর্তন করতে হবে (একত্রীকরণ প্রতিশ্রুতি) . এটি সম্পূর্ণরূপে একত্রীকরণ পূর্বাবস্থায় ফিরিয়ে আনবে এবং সম্পূর্ণ প্রকল্পটিকে এমন অবস্থায় ফিরিয়ে আনবে যখন আপনি কোনো একত্রীকরণ করেননি। আপনি যদি মেরামতের বাইরে জিনিসগুলি এলোমেলো করে থাকেন তবে এটি একটি জীবন রক্ষাকারী হতে পারে৷
একত্রীকরণ ফিরিয়ে আনতে , নিম্নলিখিত টাইপ করুন:
$ git reset -–merge
উপরের কমান্ডটি সূচী পুনরায় সেট করবে এবং ওয়ার্কিং ট্রিতে ফাইলগুলি আপডেট করবে যা 'কমিট' এবং 'হেড' এর মধ্যে আলাদা। যাইহোক, এটি সেই ফাইলগুলিকে রাখবে যেগুলি ইনডেক্স এবং ওয়ার্কিং ট্রির মধ্যে আলাদা৷
৷এছাড়াও আপনি হেডটি ফিরিয়ে আনার চেষ্টা করতে পারেন নিম্নলিখিত কমান্ড ব্যবহার করে:
$ git revert HEAD
আপনি যদি সঠিক মার্জ কমিট নির্দিষ্ট করতে চান যা আপনি প্রত্যাবর্তন করতে চান, আপনি একই প্রত্যাবর্তন কমান্ড ব্যবহার করতে পারেন তবে অতিরিক্ত পরামিতিগুলি নির্দিষ্ট করতে পারেন। মার্জ কমিটের SHA1 হ্যাশ ব্যবহার করা হবে। -m এর পরে 1 নির্দেশ করে যে আমরা মার্জের মূল দিকটি রাখতে চাই (যে শাখায় আমরা মার্জ করছি)। এই প্রত্যাবর্তনের ফলাফল হল যে Git একটি নতুন প্রতিশ্রুতি তৈরি করবে যা একত্রিত হওয়া পরিবর্তনগুলিকে ফিরিয়ে আনবে৷
$ git revert -m 1 dd8d6f587fa24327d5f5afd6fa8c3e604189c8d4>