git clone --single-branch --branch কমান্ডটি একটি নির্দিষ্ট ব্রাঞ্চ ক্লোন করে। এই কমান্ডটি আপনাকে রিপোজিটরির সব ব্রাঞ্চ ডাউনলোড না করে শুধু আপনার প্রয়োজনীয় কোড ডাউনলোড করতে দেয়। এটি বড় রিপোজিটরির জন্য খুব উপকারী।
ডিফল্টভাবে, git clone কমান্ডটি একটি Git রিপোজিটরির সব ব্রাঞ্চ ডুপ্লিকেট করে। শুধু একটি নির্দিষ্ট ব্রাঞ্চ ক্লোন করতে, আপনাকে git clone কমান্ডের সাথে --single-branch ফ্ল্যাগ ব্যবহার করতে হবে।
এই গাইডে, আমরা Git ব্যবহার করে নির্দিষ্ট ব্রাঞ্চ ক্লোন করার পদ্ধতি নিয়ে আলোচনা করব এবং একটি উদাহরণের মাধ্যমে আপনার শেখাকে củঢ় করব।
ক্লোনিং কী?
ক্লোনিং আপনাকে অন্যথায় হোস্ট করা একটি রিপোজিটরির কপি আপনার লোকাল মেশিনে সংরক্ষণ করতে দেয়। আপনি git clone কমান্ড ব্যবহার করে একটি রিপোজিটরি ক্লোন করতে পারেন।
git clone কমান্ডের মানে হলো একটি Git ভার্সন কন্ট্রোল সার্ভারের ওয়েব ইন্টারফেস প্রদান করার প্রয়োজন নেই। আপনি কমান্ড লাইন থেকে সরাসরি একটি Git রিপোজিটরির কপি ডাউনলোড করতে পারেন।
নির্দিষ্ট ব্রাঞ্চ ক্লোন করা আপনার ডিস্ক স্পেস বাঁচাতে একটি সাধারণ পদ্ধতি। কারণ আপনি প্রজেক্টের সব ব্রাঞ্চ ক্লোন করবেন না। পরবর্তীতে যদি আপনি কোনো ব্রাঞ্চের প্রয়োজন মনে করেন, তবে সেটি আলাদাভাবে ডাউনলোড করতে পারবেন।
Git: নির্দিষ্ট ব্রাঞ্চ ক্লোন করা
git clone --single-branch --branch কমান্ডটি একটি Git রিপোজিটরি থেকে নির্দিষ্ট ব্রাঞ্চ ক্লোন করে। --branch কমান্ডের পর আপনি যে ব্রাঞ্চটি ক্লোন করতে চান তার নাম উল্লেখ করুন। আপনি ক্লোন করার পর অন্য যেকোনো ব্রাঞ্চ ডাউনলোড করতে পারেন।
আপনি ক্লোন কমান্ডের द्वारा আনার ব্রাঞ্চগুলো সীমাবদ্ধ করতে --single-branch অপশন ব্যবহার করতে পারেন:
git clone --single-branch --branch <branch-name> <url>
<branch-name> হলো আপনি যে ব্রাঞ্চটি ক্লোন করতে চান তার নাম নির্দিষ্ট করার জায়গা। আপনি যে ব্রাঞ্চটি ক্লোন করতে চান সেটি অবশ্যই বিদ্যমান থাকতে হবে, অন্যথায় এই কমান্ডটি এরর ফেরত দেবে। <url> হলো আপনি যে রিপোজিটরিটি থেকে ব্রাঞ্চটি ক্লোন করতে চান তার URL।
Git: নির্দিষ্ট ব্রাঞ্চ ক্লোন করার উদাহরণ
আমাদের ck-git নামক একটি রিপোজিটরি আছে। এই রিপোজিটরিতে দুটি ব্রাঞ্চ আছে: master এবং dev। আমরা শুধু master ব্রাঞ্চটি রিট্রিভ করতে চাই কারণ আমরা dev ব্রাঞ্চ নিয়ে কাজ করার প্ল্যান করছি না।
শুধু master ব্রাঞ্চ রিট্রিভ করতে, আমরা git clone কমান্ডের সাথে --single-branch অপশন ব্যবহার করব:
git clone --single-branch --branch master https://github.com/career-karma-tutorials/ck-git
--single-branch ফ্ল্যাগের পর, আমরা --branch ফ্ল্যাগের জন্য একটি মান নির্দিষ্ট করেছি। এখানে আমরা Git কে বলছি কোন ব্রাঞ্চটি ক্লোন করতে হবে। এরপর, আমরা যেকোনো git clone কমান্ডের মতো রিপোজিটরির URL নির্দিষ্ট করি।
চলুন দেখি কমান্ডটি চালালে কী ঘটে:
Cloning into 'ck-git'... remote: Enumerating objects: 37, done. ... Unpacking objects: 100% (37/37), done.
git clone কমান্ডটি ck-git রিপোজিটরিটি আমাদের লোকাল মেশিনে কপি করেছে। --single-branch ফ্ল্যাগ ব্যবহার করার কারণে কমান্ডটি শুধু "master" ব্রাঞ্চটি ক্লোন করেছে।
আমরা যাচাই করতে পারি যে শুধু "master" ব্রাঞ্চটি ক্লোন হয়েছে কিনা, নতুন প্রজেক্ট ফোল্ডারে যান এবং git branch কমান্ড চালান:
cd ck-git/ git branch
git branch কমান্ড আমাদের রিপোজিটরিতে লোকালি সংরক্ষিত সব ব্রাঞ্চের তালিকা দেয়:
* master
শুধু একটি ব্রাঞ্চ ক্লোন হয়েছে। এটি হলো master ব্রাঞ্চ।
আপনি অবশ্যই --single-branch ফ্ল্যাগ নির্দিষ্ট করতে হবে যদি আপনি একক ব্রাঞ্চ ক্লোন করতে চান। শুধু --branch ফ্ল্যাগ ব্যবহার করলে আপনি রিপোজিটরিতে নেভিগেট করার সময় কোন ব্রাঞ্চ চেক আউট করতে চান সেটি নির্দিষ্ট করে, কিন্তু সেটি রিপোজিটরির সব ব্রাঞ্চ ফেচ করে।
--single-branch ফ্ল্যাগ Git ভার্সন 1.7.10 এবং পরবর্তী ভার্সনগুলোতে সমর্থিত।
রিমোট ব্রাঞ্চ ফেচ করা
যেহেতু আমরা শুধু একটি ব্রাঞ্চ ডাউনলোড করেছি, আমরা আমাদের প্রজেক্টে অন্য ব্রাঞ্চের কোড দেখতে পাই না।
আমরা বুঝতে পেরেছি যে "dev" ব্রাঞ্চটিও আমাদের দরকার। এটি কোনো সমস্যা নয় কারণ আমরা প্রাথমিক ক্লোন করার পর রিমোট ব্রাঞ্চ ফেচ করতে পারি। আমরা git checkout কমান্ড ব্যবহার করে "dev" ব্রাঞ্চটি রিট্রিভ করতে পারি:
git checkout --track origin/dev
এই কমান্ডটি আমাদের "origin"-এ.dev ব্রাঞ্চটি রিট্রিভ করবে। "origin" বলতে আমাদের রিপোজিটরির সাথে জড়িত প্রধান রিমোট রিপোজিটরিকে বোঝায়।
"dev" ব্রাঞ্চটি একটি লোকাল ব্রাঞ্চে সংরক্ষণ হবে। তারপর, আমাদের Git HEAD "dev" ব্রাঞ্চে চেঞ্জ হবে। এর মানে আমরা যে ব্রাঞ্চে ছিলাম সেটি থেকে "dev" ব্রাঞ্চে যাব।
উপসংহার
আপনি git clone --single-branch --branch কমান্ড ব্যবহার করে একটি Git রিপোজিটরি থেকে নির্দিষ্ট ব্রাঞ্চ ক্লোন করতে পারেন। এই কমান্ডটি একটি ব্রাঞ্চের সাথে জড়িত সব ফাইল এবং মেটাডেটা রিট্রিভ করে। অন্যান্য ব্রাঞ্চগুলো আপনাকে পরে ফেচ করতে হবে।
Git সম্পর্কে আরও জানতে চান? আমাদের How to Learn Git গাইড দেখুন। এই গাইডে আপনি শীর্ষ অনলাইন লার্নিং রিসোর্স, কোর্স এবং বইয়ের তালিকা পাবেন। আপনি একজন বিগিনার Git ইউজার থেকে এক্সপার্ট হওয়ার পথও পাবেন।