গিট পুল কমান্ড আপনার স্থানীয় মেশিনে একটি সংগ্রহস্থলের বিষয়বস্তু পুনরুদ্ধার করে এবং ডাউনলোড করে। আপনার স্থানীয় সংগ্রহস্থল আপডেট করা হয়েছে যাতে এটি দূরবর্তী সংগ্রহস্থল থেকে সামগ্রী দেখায়৷
৷আপনি সম্ভবত এমন পরিস্থিতির সম্মুখীন হবেন যেখানে আপনি আপনার স্থানীয় মেশিনে একটি Git সংগ্রহস্থলের সাথে যুক্ত কোড আনতে এবং ডাউনলোড করতে চান৷
ধরা যাক আপনি এমন একটি অ্যাপ্লিকেশনে কাজ করছেন যা স্থানীয় মুদি দোকানে অর্ডার ট্র্যাক করে। আপনি অ্যাপে পরিবর্তন করার সাথে সাথে আপনি দূরবর্তী সংগ্রহস্থল থেকে কোড টানতে চাইবেন। এটি নিশ্চিত করবে যে আপনি সর্বদা সবচেয়ে আপ-টু-ডেট কোড নিয়ে কাজ করছেন।
সেখানেই গিট পুল কমান্ড আসে। গিট পুল কমান্ডটি একটি দূরবর্তী সংগ্রহস্থল থেকে সামগ্রী পুনরুদ্ধার করতে ব্যবহৃত হয় যা আপনার স্থানীয় মেশিনে সংরক্ষণ করা হয়। এই টিউটোরিয়ালে, আমরা উদাহরণ সহ, গিট পুল কমান্ড ব্যবহার করে কোড টানার মূল বিষয় নিয়ে আলোচনা করব।
গিট পুল কমান্ড কি?
"পুলিং কোড" শব্দটি একটি দূরবর্তী সংগ্রহস্থল থেকে সামগ্রী ডাউনলোড করার এবং আপনার কম্পিউটারে সংরক্ষণ করার প্রক্রিয়াকে বর্ণনা করে৷
Git এ কোড টানতে, আপনি git pull কমান্ড ব্যবহার করতে পারেন। গিট পুল কমান্ড হল একটি সহায়ক কমান্ড যা অন্য দুটি কমান্ড কার্যকর করে:গিট ফেচ এবং গিট মার্জ।
চলুন জেনে নিই কিভাবে গিট পুল কমান্ড কাজ করে।
প্রথমত, আপনি যখন গিট পুল চালান, আপনি যে রিমোট রিপোজিটরি টানছেন তা ডাউনলোড করা হবে। রিপোজিটরি থেকে কোডের একটি কপি এবং রেপোর সাথে যুক্ত গিট কমিট আপনার মেশিনে সংরক্ষিত হবে৷
81% অংশগ্রহণকারী বলেছেন যে তারা বুটক্যাম্পে যোগ দেওয়ার পরে তাদের প্রযুক্তিগত কাজের সম্ভাবনা সম্পর্কে আরও আত্মবিশ্বাসী বোধ করেছেন। আজই একটি বুটক্যাম্পের সাথে মিলিত হন৷
৷গড় বুটক্যাম্প গ্র্যাড একটি বুটক্যাম্প শুরু করা থেকে শুরু করে তাদের প্রথম চাকরি খোঁজা পর্যন্ত ক্যারিয়ারের পরিবর্তনে ছয় মাসেরও কম সময় ব্যয় করেছে।
এটি অনুসরণ করে, একটি গিট মার্জ অপারেশন চালানো হয়। এই অপারেশনটি আপনার স্থানীয় মেশিনে কোডটিকে নতুন-পুনরুদ্ধার করা কোডের সাথে মার্জ করে, কোডবেসের একটি চূড়ান্ত সংস্করণ তৈরি করে। এই সংস্করণটি দূরবর্তী শাখা থেকে আপনি যে সংস্করণটি পুনরুদ্ধার করেছেন তার সমান হবে৷
৷গিট পুল কমান্ড
গিট পুল কমান্ড একটি রিমোট রিপোজিটরি পুনরুদ্ধার করে এবং একটি সংগ্রহস্থলের আপনার স্থানীয় সংস্করণে এর কোড ডাউনলোড করে। আসুন কমান্ডটি দেখে নেওয়া যাক:
git pull <remote>
"রিমোট" প্যারামিটারটি রিমোট রিপোজিটরিকে বোঝায় যা আপনি আপনার স্থানীয় মেশিনে টানতে চান। আপনি যখন এই কমান্ডটি চালাবেন, তখন রিমোট রিপোজিটরিটি পুনরুদ্ধার করা হবে তারপর আপনার সংগ্রহস্থলের স্থানীয় অনুলিপিতে মার্জ করা হবে৷
গিট পুল কমান্ড আনট্র্যাক করা ফাইলগুলিকে প্রভাবিত করে না। আপনি কেবল সেই পরিবর্তনগুলি পাবেন যা গিট দ্বারা ট্র্যাক করা দূরবর্তী শাখাগুলির ফাইলগুলিতে করা হয়েছে। এই পরিবর্তনগুলি আপনার স্থানীয় কাজের গাছে সংরক্ষিত হবে৷
৷git pull origin
ধরুন আমরা আমাদের "অরিজিন" রিপোজিটরির বিষয়বস্তু পুনরুদ্ধার করতে চেয়েছিলাম। এটি একটি সংগ্রহস্থলের সাথে ব্যবহৃত ডিফল্ট "রিমোট" মান। আমরা অরিজিন মাস্টার শাখা টেনে তা করতে পারি:
git pull origin/master
এই কমান্ডটি ফিরে আসে:
From https://github.com/jamesgallagher432/demo-repository b53b22d..a7d8dc2 master -> origin/master Updating b53b22d..a7d8dc2 Fast-forward README.md | 2 ++ 1 file changed, 2 insertions(+)
প্রথমত, কমান্ডটি রিমোট রিপোজিটরি পুনরুদ্ধার করেছে যার সাথে আমরা কাজ করছি। তারপর, চিহ্নিত পরিবর্তনগুলি আমাদের কোডের স্থানীয় অনুলিপিতে মার্জ করা হয়৷
৷আমাদের সংগ্রহস্থলের README.md ফাইলটি আমাদের স্থানীয় মেশিনের থেকে আলাদা ছিল। যখন আমরা গিট পুল কমান্ড চালাই, তখন পরিবর্তনগুলি চিহ্নিত করা হয় এবং আমাদের স্থানীয় মেশিনে একত্রিত করা হয়।
এখন যেহেতু আমরা গিট পুল কমান্ডটি চালিয়েছি, আমাদের স্থানীয় মেশিন আমাদের দূরবর্তী সংগ্রহস্থলের মতো একই কোড সংরক্ষণ করে। এর মানে হল, যখন আমরা আমাদের কোডে পরিবর্তন করি, আমরা জানি যে সেগুলি সংগ্রহস্থলের সর্বশেষ সংস্করণের সাথে সামঞ্জস্যপূর্ণ হবে। যখন নতুন কমিট রিমোট রিপোজিটরিতে পুশ করা হয়, আমরা রিপোজিটরির আপডেটেড ভার্সন পেতে আবার গিট পুল ব্যবহার করতে পারি।
আমরা পরীক্ষা করতে পারি যে আমাদের ফাইলগুলি গিট লগ কমান্ড চালিয়ে আপডেট করা হয়েছে। এই কমান্ডটি আমাদেরকে সমস্ত কমিট দেখায় যা একটি সংগ্রহস্থলে করা হয়েছে৷
৷একটি সংগ্রহস্থল থেকে Git পুল রিমোট শাখা
ধরা যাক যে আপনি একটি নির্দিষ্ট শাখা থেকে কোডটি টানতে চান এবং এটি আপনার স্থানীয় মেশিনে সংরক্ষণ করতে চান। আপনি "dev-v0.9" নামে একটি শাখায় কোড নিয়ে কাজ করতে যাচ্ছেন। আপনি শুধুমাত্র সেই শাখার জন্য কোড টানতে চান৷
৷আপনি গিট চেকআউট কমান্ডটি চালানোর মাধ্যমে এটি করতে পারেন, এর পরে গিট পুল কমান্ড। এই অপারেশনের জন্য সিনট্যাক্স এখানে:
git checkout <branch name> git pull <remote>
আমাদের উদাহরণের জন্য, আমরা নিম্নলিখিত কমান্ডগুলি চালাব:
git checkout dev-v0.9 git pull origin
যখন আমরা গিট চেকআউট কমান্ড চালাই, তখন আমরা "dev-v0.9" শাখায় চলে যাই। গিট পুল অরিজিন কমান্ডটি "dev-v0.9" শাখায় কোডের একটি অনুলিপি তৈরি করে পুনরুদ্ধার এবং সংরক্ষণ করা হয়। কোডটি ডাউনলোড হয়ে গেলে, একটি গিট মার্জ অপারেশন চালানো হবে। এটি আমাদের স্থানীয় সংগ্রহস্থল আপডেট করবে যাতে এটি আমাদের রিমোটের মতো একই কোড দেখায়৷
গিট ফোর্স পুল
আপনি একটি টান অপারেশন জোর করতে পারেন. যদি আপনি একটি আনট্র্যাকড ফাইল ত্রুটির সম্মুখীন হন যা আপনি বাতিল করতে চান তাহলে একটি গিট পুল কমন জোর করে৷
আপনি জোর করে একটি টান অপারেশন করার আগে, আপনাকে নিশ্চিত করা উচিত যে আপনি নিশ্চিত যে কোনো স্থানীয় পরিবর্তন হারাতে আপনি স্বাচ্ছন্দ্য বোধ করছেন। জোর করে টানলে আপনার সমস্ত স্থানীয় পরিবর্তন ওভাররাইট হবে।
জোর করে টানতে, প্রথমে আপনি আপনার স্থানীয় মেশিনে যে প্রতিশ্রুতি সংরক্ষণ করতে চান তার জন্য মেটাডেটা আনুন:
git fetch --all
পরবর্তী, আপনি আপনার বর্তমান শাখা ব্যাক আপ করা উচিত. আপনার বর্তমান শাখার ব্যাক আপ নেওয়া নিশ্চিত করবে যে আপনি কোনো পরিবর্তন হারাবেন না যা আপনি পরে ফিরে আসতে চান:
git branch -b backup
এখন যেহেতু আমাদের শাখার একটি ব্যাকআপ আছে, আমরা আমাদের পরিবর্তনগুলি টানতে পারি। আমরা রিসেট কমান্ড ব্যবহার করে এটি করতে পারি:
git reset --hard origin/master
আপনি যে প্রকল্পের সাথে কাজ করছেন তার সাথে যুক্ত মূল এবং শাখার নাম দিয়ে আপনার মূল/মাস্টার প্রতিস্থাপন করা উচিত। অরিজিন অরিজিন রিপোজিটরি প্রতিনিধিত্ব করে। মাস্টার হল সেই শাখার নাম যেখান থেকে আমরা আমাদের কোড আনছি।
আমাদের গিট ফোর্স পুল গাইডে কীভাবে গিট টান জোর করা যায় সে সম্পর্কে আরও পড়ুন।
Git Pull বনাম Git Fetch
গিট ফেচ এবং গিট পুল উভয়ই একটি দূরবর্তী সংগ্রহস্থলের বিষয়বস্তু পুনরুদ্ধার করে। কিছু ডেভেলপার গিট পুল এবং গিট ফেচ কমান্ডের মধ্যে পার্থক্য নিয়ে বিভ্রান্ত হন।
git fetch কমান্ড শুধুমাত্র দূরবর্তী সংগ্রহস্থল থেকে মেটাডেটা পুনরুদ্ধার করে। এই মেটাডেটা স্থানীয় মেশিনে টেনে নেওয়া যেতে পারে এমন কোনো পরিবর্তন উপলব্ধ আছে কিনা তা পরীক্ষা করতে ব্যবহার করা হয়। git pull কমান্ড মেটাডেটা এবং পরিবর্তন করা ফাইল উভয়ই ডাউনলোড করে।
গিট পুল কমান্ড প্রথমে একটি ফেচ অপারেশন চালায়। স্থানীয় এবং দূরবর্তী সংগ্রহস্থলের মধ্যে পরিবর্তনগুলি চিহ্নিত করা হলে, সেই পরিবর্তনগুলি ডাউনলোড করা হবে৷
আপনি যখন git pull কমান্ড ব্যবহার করছেন, তখন আপনার নিশ্চিত হওয়া উচিত যে আপনি পরিবর্তনগুলি গ্রহণ করতে প্রস্তুত। অন্যথায়, আপনি যখন আপনার কাজ করতে যান তখন আপনার সংগ্রহস্থল আপনার কোডের মধ্যে বিরোধের সম্মুখীন হতে পারে৷
সংক্ষেপে, আপনার স্থানীয় সংগ্রহস্থল এবং একটি দূরবর্তী মধ্যে কোন পরিবর্তন বিদ্যমান কিনা তা পরীক্ষা করতে গিট ফেচ ব্যবহার করুন। আপনি যদি আপনার রিমোট রিপোজিটরির জন্য মেটাডেটা পুনরুদ্ধার করতে চান এবং করা যেকোনো পরিবর্তন ডাউনলোড করতে চান তাহলে গিট পুল কমান্ডটি ব্যবহার করুন৷
উপসংহার
গিট পুল কমান্ডটি দূরবর্তী গিট রিপোজিটরিতে সংরক্ষিত কোডটি নিয়ে আসে এবং ডাউনলোড করে। গিট পুল কমান্ডটি গিট ফেচের অনুরূপ। git fetch শুধুমাত্র মেটাডেটা উদ্ধার করে। git pull মেটাডেটা এবং একটি সংগ্রহস্থলের ফাইলগুলিতে করা পরিবর্তনগুলি পুনরুদ্ধার করে।
এই টিউটোরিয়ালটি কোড টানানোর মূল বিষয়গুলি এবং কীভাবে কোড টানতে গিট পুল কমান্ড ব্যবহার করতে হয় তা অন্বেষণ করেছে। এখন আপনি একজন পেশাদার বিকাশকারীর মতো গিট পুল কমান্ড ব্যবহার শুরু করার জন্য প্রয়োজনীয় জ্ঞানের সাথে সজ্জিত!