গিট আপনাকে একটি প্রকল্পের জন্য উন্নয়নের একাধিক পৃথক লাইন বজায় রাখতে দেয়। বিকাশের এই লাইনগুলিকে শাখা বলা হয়। আপনি একটি দূরবর্তী সংগ্রহস্থল থেকে একটি শাখার সর্বশেষ সংস্করণটি স্বাধীনভাবে পুনরুদ্ধার করতে পারেন বা আপনি একবারে সমস্ত শাখার সর্বশেষ সংস্করণ পুনরুদ্ধার করতে পারেন৷
এই নির্দেশিকায়, আমরা দূরবর্তী সংগ্রহস্থল থেকে পরিবর্তনগুলি পুনরুদ্ধার করতে গিট ফেচ –অল এবং গিট পুল –অল কমান্ড কীভাবে ব্যবহার করব সে সম্পর্কে কথা বলি।
শাখা কি?
ধরা যাক আমরা একটি ব্লগ ওয়েবসাইটে কাজ করছি। আমরা ব্লগে একটি বৈশিষ্ট্য যোগ করতে যাচ্ছি যা ব্যবহারকারীদের মন্তব্য করতে দেয়। আমরা এই বৈশিষ্ট্যটি আমাদের প্রকল্পের মূল সংস্করণের অংশ হতে চাই না কারণ আমরা এখনও এটি নিয়ে কাজ করছি৷
আমরা এর জন্য একটি গিট শাখা ব্যবহার করতে পারি। আমরা আমাদের মন্তব্য বৈশিষ্ট্যের জন্য সমস্ত কোড সংরক্ষণ করতে "মন্তব্য" নামে একটি শাখা তৈরি করতে পারি। এটি একটি ওয়েবসাইটে স্থাপন করা আমাদের কোডবেসের মূল সংস্করণ পরিবর্তন না করে আমাদের মন্তব্য করার বৈশিষ্ট্যটিতে কাজ করতে দেবে।
শাখা স্থানীয়ভাবে বা দূরবর্তীভাবে সংরক্ষণ করা যেতে পারে। আপনি যদি একটি প্রকল্পের স্থানীয় সংস্করণে কাজ করেন তবে একটি শাখা স্থানীয় হবে। দূরবর্তী শাখাগুলি একটি প্রকল্পের প্রধান সংস্করণের সাথে সংরক্ষণ করা হয়৷
Git:সমস্ত শাখা আনুন
আমরা ব্লগ সাইট নামে একটি প্রকল্পে কাজ করছি। এই প্রকল্পে দুটি শাখা রয়েছে:অরিজিন মাস্টার এবং অরিজিন ডেভ।
dev শাখায় আমরা কাজ করছি এমন সমস্ত পরীক্ষামূলক বৈশিষ্ট্য রয়েছে। আমরা মনে করি যে অন্য একজন সহযোগী উভয় শাখায় পরিবর্তন এনেছে। আমরা নিশ্চিত করতে চাই এবং মেটাডেটা পুনরুদ্ধার করতে চাই যদি কোনো পরিবর্তন করা হয়ে থাকে।
আমরা fetch কমান্ড ব্যবহার করে এটি করতে পারি। ফেচ কমান্ড গিটকে সাম্প্রতিক আপডেটে দূরবর্তী শাখা থেকে মেটাডেটা পুনরুদ্ধার করতে বলে। fetch কমান্ড একটি সংগ্রহস্থলের স্থানীয় সংস্করণে সঞ্চিত ফাইলগুলিকে আপডেট করে না।
81% অংশগ্রহণকারী বলেছেন যে তারা বুটক্যাম্পে যোগদানের পরে তাদের প্রযুক্তিগত কাজের সম্ভাবনা সম্পর্কে আরও আত্মবিশ্বাসী বোধ করেছেন। আজই একটি বুটক্যাম্পের সাথে মিলিত হন৷
৷গড় বুটক্যাম্প গ্র্যাড একটি বুটক্যাম্প শুরু করা থেকে শুরু করে তাদের প্রথম চাকরি খোঁজা পর্যন্ত ক্যারিয়ারের পরিবর্তনে ছয় মাসেরও কম সময় ব্যয় করেছে।
সমস্ত দূরবর্তী শাখাগুলিকে ট্র্যাক করতে এবং সেই শাখাগুলির জন্য মেটাডেটা আনতে, আমরা -all পতাকা সহ git fetch কমান্ডটি ব্যবহার করতে পারি:
git fetch --all
এই কমান্ডটি ফেরত দেয়:
Fetching origin remote: Enumerating objects: 5, done. remote: Counting objects: 100% (5/5), done. remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 0 Unpacking objects: 100% (3/3), done. From https://github.com/career-karma-tutorials/blog-site 3fcea0c..da74d68 dev -> origin/devথেকে
আমাদের রিমোট রিপোজিটরিতে আমরা যে সমস্ত পরিবর্তন করেছি তা fetch কমান্ডটি নিয়ে এসেছে। ফেচ কমান্ড জানে যে আমাদের দূরবর্তী ডেভ শাখায় এমন পরিবর্তন রয়েছে যা আমাদের স্থানীয় মেশিনে নেই। আমরা এই কমিটগুলির জন্য মেটাডেটা পুনরুদ্ধার করেছি।
আমরা গিট ফেচ অরিজিন <branch-name>
ব্যবহার করে একটি পৃথক শাখার জন্য মেটাডেটা পুনরুদ্ধার করতে পারি আদেশ।
Git:সমস্ত শাখা টানুন
আপনি যদি আপনার স্থানীয় কাজের অনুলিপি আপডেট করতে চান এবং সেইসাথে মেটাডেটা পুনরুদ্ধার করতে চান? সেখানেই গিট পুল কমান্ডটি কাজে আসে।
আমরা এখন জানি যে আমাদের সংগ্রহস্থলে পরিবর্তন করা হয়েছে। আমরা আমাদের স্থানীয় সংগ্রহস্থলের সাথে এই পরিবর্তনগুলিকে একত্রিত করে খুশি। আমাদের স্থানীয় মেশিনে পরিবর্তনগুলি ডাউনলোড করতে, আমাদের git pull কমান্ড ব্যবহার করতে হবে:
git pull --all
আমরা প্রতিটি শাখা থেকে পরিবর্তন পুনরুদ্ধার করতে চাই তা নির্দেশ করার জন্য আমরা –all পতাকা ব্যবহার করেছি। আমাদের কমান্ড ফিরে আসে:
Fetching origin remote: Enumerating objects: 5, done. remote: Counting objects: 100% (5/5), done. remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 0 Unpacking objects: 100% (3/3), done. From https://github.com/career-karma-tutorials/blog-site 3fcea0c..da74d68 dev -> origin/dev Updating 3fcea0c..da74d68 Fast-forward README.md | 1 + 1 file changed, 1 insertion(+)
গিট পুল কমান্ড প্রথমে পরিবর্তনগুলি পরীক্ষা করার জন্য একটি গিট ফেচ কমান্ড চালায়। ফেচ অপারেশন আমাদের কমিটের জন্য মেটাডেটা ফেরত দেয়। তারপর, গিট পুল কমান্ড আমাদের রিমোট রিপোজিটরিতে করা সমস্ত পরিবর্তন পুনরুদ্ধার করে এবং আমাদের স্থানীয় ফাইলগুলি পরিবর্তন করে।
আমরা দেখতে পাচ্ছি আমাদের রিমোট রিপোজিটরিতে README.md ফাইলটি পরিবর্তন করা হয়েছে। এখন যেহেতু আমরা একটি পুল অপারেশন চালাচ্ছি, আমাদের স্থানীয় মেশিনে পরিবর্তন রয়েছে।
একটি শাখা থেকে কোড পুনরুদ্ধার করতে, আমরা git pull origin
উপসংহার
git fetch –all কমান্ড একটি সংগ্রহস্থলের সমস্ত শাখায় করা প্রতিটি পরিবর্তনের মেটাডেটা পুনরুদ্ধার করে। git pull –all কমান্ড আপনার স্থানীয় মেশিনে সমস্ত শাখা জুড়ে করা সমস্ত পরিবর্তন ডাউনলোড করে।
এখন আপনার কাছে এমন জ্ঞান আছে যেটি আপনাকে একজন পেশাদারের মতো গিট থেকে সমস্ত শাখা টানতে হবে!