কম্পিউটার

কীভাবে গিট মার্জ দ্বন্দ্বগুলি সমাধান করবেন

বেশিরভাগ ক্ষেত্রে, Git শাখাগুলির মধ্যে পার্থক্য সমাধান করতে পারে এবং তাদের একত্রিত করতে পারে। কারণ ডেভেলপাররা সাধারণত বিভিন্ন লাইন বা ফাইলে পরিবর্তন করে থাকেন। এমন কিছু ক্ষেত্রে রয়েছে যেখানে গিট একটি সংগ্রহস্থল একত্রিত করতে পারে না। এই পরিস্থিতিগুলিকে মার্জ দ্বন্দ্ব বলা হয়।

এই নির্দেশিকায়, আমরা একত্রীকরণ কী, একত্রীকরণের দ্বন্দ্ব কী এবং আপনি কীভাবে একটি গিট মার্জ বিরোধের সমাধান করতে পারেন সে সম্পর্কে কথা বলতে যাচ্ছি। শুরু করা যাক!

একটি মার্জ দ্বন্দ্ব কি?

একটি মার্জ দ্বন্দ্ব যেখানে গিট আপনার সাহায্য ছাড়া দুটি শাখাকে একত্রিত করতে পারে না।

মার্জগুলি হল গিট-এর মত সংস্করণ নিয়ন্ত্রণ ব্যবস্থার একটি ভিত্তিপ্রস্তর বৈশিষ্ট্য। তারা বিকাশকারীদের একটি সংগ্রহস্থলে উন্নয়নের একাধিক পৃথক লাইন বজায় রাখার অনুমতি দেয়। এর অর্থ হল একজন বিকাশকারী একটি প্রকল্পের মূল অনুলিপি পরিবর্তন না করেই একটি শাখায় বাগ সংশোধন করতে কাজ করতে পারে।

মার্জ দ্বন্দ্ব দুটি পরিস্থিতিতে দেখা দেয়:

  • দুটি শাখা কোডের একই লাইন পরিবর্তন করেছে।
  • একটি শাখা একটি ফাইল সরিয়ে দিয়েছে যা অন্য শাখায় পরিবর্তন করা হয়েছে।

যখন একটি মার্জ বিরোধ দেখা দেয়, তখন গিট-এ একটি ত্রুটি উপস্থাপন করা হবে। এটি আপনাকে বলে যে গিট সফলভাবে শাখাগুলিকে একত্রিত করতে পারেনি৷

কিভাবে একটি সরানো ফাইল দ্বন্দ্ব সমাধান করতে হয়

গিট শাখা একে অপরের থেকে স্বাধীন। এর মানে হল যে একজন বিকাশকারী অন্য শাখাকে প্রভাবিত না করে সেই পরিবর্তন ছাড়াই একটি শাখার একটি ফাইল সরাতে পারে।

এক শাখায় একটি ফাইলে পরিবর্তন করা হলে এবং অন্য শাখায় ফাইলটি সরানো হলে মার্জ বিরোধ ঘটতে পারে। এর কারণ হল Git ফাইলটি মুছে ফেলতে বা পরিবর্তন করতে জানে না।

81% অংশগ্রহণকারী বলেছেন যে তারা বুটক্যাম্পে যোগ দেওয়ার পরে তাদের প্রযুক্তিগত কাজের সম্ভাবনা সম্পর্কে আরও আত্মবিশ্বাসী বোধ করেছেন। আজই একটি বুটক্যাম্পের সাথে মিলিত হন৷

গড় বুটক্যাম্প গ্র্যাড একটি বুটক্যাম্প শুরু করা থেকে শুরু করে তাদের প্রথম চাকরি খোঁজা পর্যন্ত ক্যারিয়ারের পরিবর্তনে ছয় মাসেরও কম সময় কাটিয়েছে।

ধরা যাক যে আমাদের দুটি শাখা রয়েছে:দেব এবং মাস্টার। dev শাখায়, আমরা README.md ফাইলটি সরিয়ে দিয়েছি। মাস্টার শাখায়, আমরা নতুন লেখা যোগ করেছি।

আমরা গিট মার্জ কমান্ড ব্যবহার করে এই শাখাগুলিকে একত্রিত করতে পারি:

git merge dev

এটি "dev" শাখাটিকে আমাদের বর্তমান শাখার সাথে একীভূত করবে, যা মাস্টার। আমাদের কোড একটি মার্জ বিরোধ ফিরিয়ে দিয়েছে:

স্বয়ংক্রিয়ভাবে মার্জ করা README.mdCONFLICT (সামগ্রী):README.mdঅটোমেটিক মার্জ ব্যর্থ হয়েছে; দ্বন্দ্ব ঠিক করুন এবং তারপর ফলাফল করুন।

এই দ্বন্দ্ব সমাধানের জন্য, আমাদের একটি সিদ্ধান্ত নিতে হবে:আমরা কি ফাইলটি রাখতে চাই, নাকি এটি পরিবর্তন করতে চাই? আপনি যদি ফাইলটি রাখতে চান তবে গিট অ্যাড কমান্ডটি ব্যবহার করুন এবং এটি সংগ্রহস্থলে আবার যুক্ত করুন:

git add README.md

অন্যথায়, আপনার সংগ্রহস্থল থেকে এটি সরাতে git rm কমান্ডটি ব্যবহার করুন:

git rm README.md

rm command আপনার স্থানীয় সংগ্রহস্থল থেকে ফাইল মুছে ফেলবে। আপনি rm কমান্ড ব্যবহার করার আগে, আপনি ফাইলটি সরাতে চান তা নিশ্চিত করতে দুবার চেক করুন।

একবার আপনি বিরোধপূর্ণ ফাইলগুলির সাথে কী করবেন তা বেছে নিলে, আপনি আপনার পরিবর্তনগুলির সাথে একটি প্রতিশ্রুতি তৈরি করতে পারেন এবং শাখাটি একত্রিত করতে পারেন:

git যোগ করুন README.mdgit কমিট -m "ফিট:রিপোজিটরিতে README.md যোগ করুন" git মার্জ ডেভ

গিট অ্যাড কমান্ড আমাদের পরিবর্তনগুলিকে পর্যায়ভুক্ত করে। গিট কমিট কমান্ড একটি নতুন কমিট তৈরি করে। git merge কমান্ড আমাদের dev এবং master শাখাকে একত্রিত করে। আমাদের শাখাগুলি এখন একত্রিত হতে পারে কারণ আমরা একত্রীকরণ বিরোধের সমাধান করেছি৷

ফাইল পরিবর্তনের দ্বন্দ্ব কিভাবে সমাধান করবেন

বিকাশকারীরা কখনও কখনও দুটি ভিন্ন শাখায় একই ফাইলে পরিবর্তন করে। দুটি শাখা একত্রিত হওয়ার সময় কোন পরিবর্তনটি রাখা হবে তা আলাদা করা গিটের পক্ষে অসম্ভব।

এই ক্ষেত্রে, একটি একীভূত দ্বন্দ্ব দেখা দেবে। ধরা যাক আমাদের দুটি শাখা সহ একটি সংগ্রহস্থল রয়েছে:মাস্টার এবং দেব। আমরা উভয় শাখায় README.md ফাইলে একটি পরিবর্তন করেছি। এটি একটি মার্জ দ্বন্দ্ব সৃষ্টি করেছে:

স্বয়ংক্রিয়ভাবে মার্জ করা README.mdCONFLICT (সামগ্রী):README.mdঅটোমেটিক মার্জ ব্যর্থ হয়েছে; দ্বন্দ্ব ঠিক করুন এবং তারপর ফলাফল করুন।

প্রথম ধাপ হল মার্জ বিরোধের মূল কারণ চিহ্নিত করা। আপনি গিট স্ট্যাটাস কমান্ড ব্যবহার করে এটি করতে পারেন:

শাখার মাস্টারের উপর আপনার পাথগুলি একত্রিত করা হয়নি। (বিরোধের সমাধান করুন এবং "গিট কমিট" চালান) (একত্রীকরণ বাতিল করতে "গিট মার্জ --অ্যাবর্ট" ব্যবহার করুন) আনমার্জ করা পাথ:(রেজোলিউশন চিহ্নিত করতে "গিট অ্যাড <ফাইল>..." ব্যবহার করুন) উভয়ই পরিবর্তিত:README.md 

আমরা এই বার্তা থেকে দেখতে পাচ্ছি যে ফাইলটি README.md উভয় শাখায় পরিবর্তন করা হয়েছে। এখন, আমাদের একত্রীকরণ বিরোধের সমাধান করতে হবে। আসুন একটি পাঠ্য সম্পাদক ব্যবহার করে আমাদের README.md ফাইলটি খুলি:

এটি একটি README.md ফাইল। এটি একত্রিত-দ্বন্দ্ব নামক একটি সংগ্রহস্থলে রয়েছে।<<<<<<>>>>>> দেব

Git ফাইলটি সম্পাদনা করেছে আমাদের জানাতে যে একটি মার্জ দ্বন্দ্ব বিদ্যমান এবং দ্বন্দ্ব চিহ্নিতকারী যোগ করেছে। মার্জ দ্বন্দ্ব প্রকাশ করতে গিট এর চেয়ে কম, এর চেয়ে বড় এবং সমান সাইন অক্ষর ব্যবহার করে।

চিহ্নের চেয়ে কম (<) বর্তমান শাখায় করা পরিবর্তনগুলিকে উপস্থাপন করে। চিহ্নের চেয়ে বৃহত্তর (>) আপনাকে বলে যে শাখায় করা পরিবর্তনটি আপনি আপনার বর্তমান শাখায় একীভূত করার চেষ্টা করেছেন। সমান চিহ্ন (=) পার্থক্যগুলিকে আলাদা করে।

এক্ষেত্রে:

  • "এই ফাইলটি প্রধান শাখায় রয়েছে।" আমাদের মাস্টার শাখায় (বা হেড)।
  • "এই ফাইলটি দেব শাখায় রয়েছে।" আমাদের দেব শাখায় আছে।

এই মার্জ টুল দ্বন্দ্ব সমাধান করার জন্য, আপনাকে যা করতে হবে তা হল যে পাঠ্যটি আপনি চান না তা সরান৷ ধরা যাক যে আমরা আমাদের কোড বলতে চাই:"এই ফাইলটি একটি শাখায় রয়েছে।" আমরা এই সংশোধনটি এভাবে করতে পারি:

এটি একটি README.md ফাইল৷ এটি একটি সংগ্রহস্থলে রয়েছে যার নাম merge-conflicts৷ এই ফাইলটি একটি শাখায়৷

একবার আমরা এই পরিবর্তনগুলি করে ফেললে, আমরা একটি চূড়ান্ত একত্রীকরণ করতে প্রস্তুত৷ আসুন আমাদের পরিবর্তনগুলি স্টেজ করি, সেগুলিকে আমাদের সংগ্রহস্থলে প্রতিশ্রুতিবদ্ধ করি এবং আমাদের dev মার্জ করি এবং master শাখা:

git যোগ করুন .git কমিট -m "ফিট:মার্জ বিরোধের সমাধান করুন।"গিট মার্জ ডেভ

এখন আমরা আমাদের একত্রীকরণ বিরোধের সমাধান করেছি, আমাদের কোড সফলভাবে একত্রিত হয়েছে।

উপসংহার

মার্জ দ্বন্দ্ব দেখা দেয় যখন আপনি দুটি শাখায় পাঠ্যের একই লাইনে পরিবর্তন করেন বা যেখানে আপনি একটি শাখায় একটি ফাইল পরিবর্তন করেন এবং সেই ফাইলটি অন্য শাখায় সরিয়ে দেন।

এই নির্দেশিকায়, আমরা উভয় ক্ষেত্রেই একত্রীকরণ দ্বন্দ্ব কিভাবে সমাধান করতে হয় তা নিয়ে আলোচনা করেছি। এখন আপনি গিট বিশেষজ্ঞের মতো মার্জ দ্বন্দ্ব মোকাবেলা শুরু করতে প্রস্তুত।


  1. কিভাবে গিট ক্যাশে সাফ করবেন

  2. কিভাবে Gmail এ একটি মেল মার্জ পাঠাবেন

  3. গিট ত্রুটি কীভাবে ঠিক করবেন:আপনাকে প্রথমে আপনার বর্তমান সূচকটি সমাধান করতে হবে

  4. কিভাবে গিট মার্জ ত্রুটি ঠিক করবেন