কম্পিউটার টিউটোরিয়াল

Git Pull: রিমোট রিপোজিটরি থেকে কোড পুল করার পদ্ধতি

git pull কমান্ড একটি রিপোজিটরির কন্টেন্ট রিট্রিভ এবং ডাউনলোড করে আপনার লোকাল মেশিনে। আপনার লোকাল রিপোজিটরি আপডেট হয় যাতে সেটি রিমোট রিপোজিটরির কন্টেন্ট দেখায়।

আপনি সম্ভবত এমন পরিস্থিতি সম্মুখীন হবেন যেখানে আপনি একটি Git রিপোজিটরির সাথে যুক্ত কোড আপনার লোকাল মেশিনে ফেচ এবং ডাউনলোড করতে চাবেন।

ধরা যাক আপনি একটি অ্যাপ্লিকেশনে কাজ করছেন যা একটি লোকাল গ্রোসারি স্টোরের অর্ডার ট্র্যাক করে। আপনি অ্যাপে পরিবর্তন আনার সাথে সাথে, আপনি রিমোট রিপোজিটরির কোড পুল করতে চাবেন। এটি নিশ্চিত করবে যে আপনি সর্বদা সবচেয়ে আপ-টু-ডেট কোডের সাথে কাজ করছেন।

সেটাই যেখানে git pull কমান্ড কাজে আসে। git pull কমান্ড একটি রিমোট রিপোজিটরির কন্টেন্ট রিট্রিভ করতে ব্যবহৃত হয় যা তারপর আপনার লোকাল মেশিনে সংরক্ষণ হয়। এই টিউটোরিয়ালে, আমরা উদাহরণসহ পুলিং কোডের বেসিক এবং git pull কমান্ড কীভাবে ব্যবহার করতে হয় তা আলোচনা করব।

Git Pull কমান্ড কী?

"পুলিং কোড" টার্মটি একটি রিমোট রিপোজিটরির কন্টেন্ট ডাউনলোড করার প্রসেস এবং আপনার কম্পিউটারে সেভ করার প্রক্রিয়া বর্ণনা করে।

Git-এ কোড পুল করতে, আপনি git pull কমান্ড ব্যবহার করতে পারেন। git pull কমান্ড একটি হেল্পফুল কমান্ড যেটি দুটি অন্য কমান্ড এক্সিকিউট করে: git fetch এবং git merge।

চলুন ব্রেক ডাউন করি কীভাবে git pull কমান্ড কাজ করে।

প্রথমে, যখন আপনি git pull রান করেন, আপনি যে রিমোট রিপোজিটরি পুল করছেন সেটি ডাউনলোড হবে। রিপোজিটরির কোডের একটি কপি এবং রিপোজিটরির সাথে যুক্ত Git কমিটগুলো আপনার মেশিনে সংরক্ষণ হবে।

৮১% পার্টিসিপেন্ট заяви করেছেন যে বুটক্যাম্পে অংশগ্রহণের পর তাদের টেক জব প্রস্পেক্টস নিয়ে তারা আরও আত্মবিশ্বাসী মনে করছেন। আজই একটি বুটক্যাম্পে ম্যাচ করুন।

গড় বুটক্যাম্প গ্র্যাজুট ক্যারিয়ার ট্রানজিশনে ছয় মাসের কম সময় ব্যয় করেছেন, বুটক্যাম্প শুরু থেকে প্রথম জব পাওয়ার পর্যায়ে।

এইএরপর, একটি Git merge অপারেশন এক্সিকিউট হয়। এই অপারেশন আপনার লোকাল মেশিনের কোডকে নতুন রিট্রিভ করা কোডের সাথে মার্জ করে, একটি ফাইনাল ভার্সন অফ দ্য কোডবেস তৈরি করে। এই ভার্সনটি যেটি আপনি একটি রিমোট ব্রাঞ্চ থেকে রিট্রিভ করেছেন তার সমান হবে।

Git Pull কমান্ড

git pull কমান্ড একটি রিমোট রিপোজিটরি রিট্রিভ করে এবং এর কোড আপনার লোকাল ভার্সন অফ এ রিপোজিটরিতে ডাউনলোড করে। চলুন কমান্ডটি দেখি:

git pull <remote>

"remote" প্যারামিটারটি রেফার করে রিমোট রিপোজিটরিটি যেটি আপনি আপনার লোকাল মেশিনে পুল করতে চান। আপনি এই কমান্ড রান করলে, রিমোট রিপোজিটরি রিট্রিভ হবে তারপর আপনার লোকাল কপি অফ দ্য রিপোজিটরিতে মার্জ হবে।

git pull কমান্ড আনট্র্যাকড ফাইলগুলকে প্রভাবিত করে না। আপনি শুধু সেই পরিবর্তনগুলো পাবেন যেগুলো রিমোট ব্রাঞ্চে করা হয়েছে যেগুলো Git দ্বারা ট্র্যাক করা হয়। এই পরিবর্তনগুলো আপনার লোকাল ওয়ার্কিং ট্রিতে সংরক্ষণ হবে।

git pull origin

ধরা যাক আমরা আমাদের "origin" রিপোজিটরির কন্টেন্ট রিট্রিভ করতে চাই। এটি একটি রিপোজিটরির সাথে ব্যবহৃত ডিফল্ট "remote" ভ্যালু। আমরা origin master ব্রাঞ্চ পুল করতে পারি:

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 pull কমান্ড রান করলাম, পরিবর্তনগুলো চিহ্নিত হয়ে আমাদের লোকাল মেশিনে মার্জ হয়েছে।

এখন যেহেতু আমরা git pull কমান্ড রান করেছি, আমাদের লোকাল মেশিন সেম কোড স্টোর করে যেটি আমাদের রিমোট রিপোজিটরিতে আছে। এর মানে, যখন আমরা আমাদের কোডে পরিবর্তন আনব, আমরা জানব যে সেগুলো রিপোজিটরির লেটেস্ট ভার্সনের সাথে কম্প্যাটিবল হবে। যখন নতুন কমিটগুলো রিমোট রিপোজিটরিতে পুশ হবে, আমরা আবার git pull ব্যবহার করে রিপোজিটরির একটি আপডেটেড ভার্সন পেতে পারি।

আমরা চেক করতে পারি আমাদের ফাইলগুলো আপডেট হয়েছে কিনা git log কমান্ড রান করে। এই কমান্ড আমাদের দেখায় সকল কমিট যেগুলো একটি রিপোজিটরিতে করা হয়েছে।

Git Pull রিমোট ব্রাঞ্চ একটি রিপোজিটরির থেকে

ধরা যাক আপনি একটি নির্দিষ্ট ব্রাঞ্চ থেকে কোড পুল করতে চান এবং আপনার লোকাল মেশিনে সংরক্ষণ করতে চান। আপনি "dev-v0.9" নামে একটি ব্রাঞ্চের সাথে কাজ করতে যাচ্ছেন। আপনি শুধু সেই ব্রাঞ্চের কোড পুল করতে চান।

আপনি এটি করতে পারেন git checkout কমান্ড এক্সিকিউট করে, তারপর git pull কমান্ড। এই অপারেশনের সিনট্যাক্স:

git checkout <branch name> git pull <remote>

আমাদের উদাহরণের জন্য, আমরা নিচের কমান্ডগুলো রান করব:

git checkout dev-v0.9 git pull origin

যখন আমরা git checkout কমান্ড রান করি, আমরা "dev-v0.9" ব্রাঞ্চে মুভ করি। git pull origin কমান্ড "dev-v0.9" ব্রাঞ্চের কোডের একটি কপি রিট্রিভ ও সংরক্ষণ করে। একবার কোড ডাউনলোড হলে, একটি git merge অপারেশন এক্সিকিউট হবে। এটি আমাদের লোকাল রিপোজিটরি আপডেট করবে যাতে সেটি আমাদের রিমোটের সেম কোড দেখায়।

Git Force Pull

আপনি একটি পুল অপারেশন ফোর্স করতে পারেন। ফোর্সিং এ git pull সাধারণ যদি আপনি একটি আনট্র্যাকড ফাইল এরর সম্মুখীন হন যেটি আপনি ডিসকার্ড করতে চান।

আপনি একটি পুল অপারেশন ফোর্স করার আগে, আপনাকে নিশ্চিত করতে হবে যে আপনি কনফার্টেবল আপনার যেকোনো লোকাল চেঞ্জ হারাতে। ফোর্সিং এ পুল আপনার সকল লোকাল চেঞ্জ ওভাররাইট করবে।

একটি পুল ফোর্স করতে, প্রথমে আপনি যে কমিটটি আপনার লোকাল মেশিনে সংরক্ষণ করতে চান তার মেটাডেটা ফেচ করুন:

git fetch --all

পরবর্তী, আপনার কারেন্ট ব্রাঞ্চ ব্যাকআপ নিন। আপনার কারেন্ট ব্রাঞ্চ ব্যাকআপ নেওয়া নিশ্চিত করবে যে আপনি যেকোনো পরিবর্তন হারাবেন না যেগুলো আপনি পরে ফিরে যেতে চাইতে পারেন:

git branch -b backup

এখন যেহেতু আমাদের ব্রাঞ্চের একটি ব্যাকআপ আছে, আমরা আমাদের চেঞ্জগুলো পুল করতে পারি। আমরা এটি reset কমান্ড ব্যবহার করে করতে পারি:

git reset --hard origin/master

আপনাকে origin/master রিপ্লেস করা উচিত আপনার প্রজেক্টের সাথে যুক্ত origin এবং ব্রাঞ্চ নাম দিয়ে। Origin রিপ্রেজেন্ট করে origin রিপোজিটরি। Master হলো ব্রাঞ্চের নাম যেটি থেকে আমরা আমাদের কোড ফেচ করছি।

Git force pull কীভাবে করতে হয় সে সম্পর্কে আরও পড়ুন আমাদের git force pull গাইডে।

Git Pull vs. Git Fetch

git fetch এবং git pull দুটোই একটি রিমোট রিপোজিটরির কন্টেন্ট রিট্রিভ করে। কিছু ডেভেলপার git pull এবং git fetch কমান্ডের পার্থক্য নিয়ে কনফিউজড হন।

git fetch কমান্ড শুধু রিমোট রিপোজিটরির মেটাডেটা রিট্রিভ করে। এই মেটাডেটা ব্যবহার করা হয় চেক করতে কোনো চেঞ্জ আছে কিনা যেগুলো একটি লোকাল মেশিনে পুল করা যাবে। git pull কমান্ড মেটাডেটা এবং পরিবর্তন করা ফাইলগুলো উভয় ডাউনলোড করে।

git pull কমান্ড প্রথমে একটি fetch অপারেশন এক্সিকিউট করে। যদি একটি লোকাল এবং রিমোট রিপোজিটরির মধ্যে চেঞ্জ আইডেন্টিফাই হয়, সেই চেঞ্জগুলো ডাউনলোড হবে।

আপনি যখন git pull কমান্ড ব্যবহার করছেন, আপনাকে নিশ্চিত করতে হবে যে আপনি চেঞ্জগুলো এক্সেপ্ট করার জন্য প্রস্তুত। অন্যথায়, আপনার রিপোজিটরি আপনার কোড কমিট করার সময় কনফ্লিক্ট সম্মুখীন হতে পারে।

সংক্ষেপে, git fetch ব্যবহার করুন চেক করতে আপনার লোকাল রিপোজিটরি এবং একটি রিমোটর মধ্যে কোনো চেঞ্জ আছে কিনা। git pull কমান্ড ব্যবহার করুন আপনার রিমোট রিপোজিটরির মেটাডেটা রিট্রিভ করতে এবং ফাইলগুলিতে করা যেকোনো চেঞ্জ ডাউনলোড করতে।

উপসংহার

git pull কমান্ড একটি রিমোট Git রিপোজিটরিতে সংরক্ষিত কোড ফেচ এবং ডাউনলোড করে। git pull কমান্ড git fetch-এর সাথে সিমিলার। git fetch শুধু মেটাডেটা রিট্রিভ করে। git pull মেটাডেটা এবং রিপোজিটরির ফাইলগুলিতে করা পরিবর্তনগুলো রিট্রিভ করে।

এই টিউটোরিয়াল এক্সপ্লোর করেছি পুলিং কোডের বেসিক এবং git pull কমান্ড কীভাবে ব্যবহার করতে হয় কোড পুল করতে। এখন আপনার কাছে वो নলেজ রয়েছে যা আপনাকে git pull কমান্ড প্রফেশনাল ডেভেলপারের মতো ব্যবহার শুরু করতে দেবে!


  1. Git Commit: কমিট তৈরি এবং ম্যানেজমেন্ট গাইড

  2. Git Cannot open .git/FETCH_HEAD: Permission denied সমাধান

  3. Git Detached HEAD: কারণ এবং সমাধান

  4. Git Reset: কমিট রিয়ার্ন করার টুল