Git clone কমান্ড একটি রিমোট রিপোজিটরির কপি আপনার লোকাল মেশিনে তৈরি করে। ডিফল্টভাবে, clone কমান্ড আপনার কোডটি একটি ফোল্ডারে সংরক্ষণ করে যেটি আপনার রিপোজিটরির নাম শেয়ার করে। এটি রিপোজিটরির URL-এর পর ফোল্ডার নাম স্পেসিফাই করে ওভাররাইড করা যায়।
Git ভার্সন কন্ট্রোল সিস্টেমে অন্য লোকেশনে সংরক্ষিত একটি Git রিপোজিটরির লোকাল কপি তৈরি করা একটি কেন্ড্রিক অংশ।
Git clone কমান্ড আপনাকে অন্য কোথাও সংরক্ষিত একটি রিপোজিটরির লোকাল কপি তৈরি করতে দেয়। এই কপিকে "clone" বলা হয়।
এই টিউটোরিয়ালে, আমরা git clone কমান্ডের বেসিক্স এক্সপ্লোর করব। আমরা লোকাল এবং রিমোট রিপোজিটরি কীভাবে ক্লোন করতে হয়, এবং বেয়ার রিপোজিটরি কীভাবে ক্লোন করতে হয় সেটি আলোচনা করব।
git clone কমান্ড কী?
Git clone কমান্ড একটি এক্সিস্টিং রিপোজিটরির কপি আপনার লোকাল কম্পিউটারের ওয়ার্কিং ডাইরেক্টরিতে তৈরি করে।
Cloning Git-এর একটি কেন্ড্রিক ফিচার। কারণ ক্লোনিং আপনাকে আপনার কোডের একটি কপি তৈরি করতে দেয় যা মেইন ভার্সন থেকে স্বতন্ত্র। আপনি এই কপি রান এবং ম্যানিপুলেট করতে পারেন আপনার লোকাল মেশিনে মেইন ভার্সনের কোডকে প্রভাবিত না করেই।
এর মানে আপনাকে রিপোজিটরিতে পরিবর্তন আনতে হবে না যতক্ষণ না আপনি রেডি হন। আপনি যেকোনো পরিবর্তন করার পর, আপনি কোডকে রিমোট রিপোজিটরিতে পুশ করতে পারেন সংরক্ষণের জন্য। অথবা, আপনি একটি পুল রিকোয়েস্ট তৈরি করতে পারেন যাতে অন্যরা আপনার লিখা কোড রিভিউ করতে পারে।
Git ব্যবহার করে রিপোজিটরি সেট আপ করার দুটি উপায় রয়েছে। আপনি git clone কমান্ড ব্যবহার করে একটি এক্সিস্টিং রিপোজিটরি ক্লোন করতে পারেন, অথবা git init কমান্ড ব্যবহার করে একটি নতুন রিপোজিটরি তৈরি করতে পারেন।
একটি রিপোজিটরি ক্লোন করা সাধারণত একটি এক-বারের অ্যাকশন। একবার আপনি একটি রিপোজিটরি ক্লোন করলে, আপনার লোকাল মেশিনে একটি Git রিপোজিটরি নিয়ে কাজ করার জন্য আপনার প্রয়োজনীয় সব কোড থাকবে।
Git clone কমান্ড একটি রিপোজিটরির সাথে জড়িত সকল মেটাডেটা ক্লোন করে। একবার আপনি একটি রিপোজিটরি ক্লোন করলে, আপনার প্রজেক্টের সম্পূর্ণ ইতিহাসের রেকর্ড থাকবে। Clone কমান্ড একটি প্রজেক্টের সাথে জড়িত সব Git ব্রাঞ্চও ক্লোন করে।
Git Clone কীভাবে ব্যবহার করবেন
Git clone কমান্ড আপনার লোকাল মেশিনে একটি নতুন ডাইরেক্টরিতে একটি এক্সিস্টিং রিপোজিটরির ক্লোন তৈরি করে। আপনি যখন একটি রিপোজিটরি আপনার লোকাল মেশিনে ক্লোন করেন, তবে একটি নতুন এনভায়রনমেন্ট তৈরি হয় যেখানে রিপোজিটরির কোড সংরক্ষিত থাকবে।
চলুন git clone কমান্ড ব্যবহার করে একটি রিপোজিটরি কীভাবে ক্লোন করতে হয় তার একটি উদাহরণ দেখি। ধরা যাক, আমরা GitHub থেকে একটি রিপোজিটরি আমাদের লোকাল মেশিনে ক্লোন করতে চাই।
আমরা নিম্নলিখিত কমান্ড লাইন অপারেশন ব্যবহার করতে পারি আমাদের প্রজেক্ট ক্লোন করতে:
git clone https://github.com/username/project-name.git cd project-name
আমাদের কোডে, প্রথম কমান্ডটি আমাদের স্পেসিফাই করা GitHub URL-এ সংরক্ষিত একটি নতুন Git রিপোজিটরি তৈরি করে। যে ফোল্ডারে আমাদের কোড দেখাবে তার নাম রিপোজিটরির নামের সমান। এই কেসে, Git একটি ফোল্ডার তৈরি করে যার নাম project-name।
তারপর, আমরা cd কমান্ড ব্যবহার করি আমাদের নতুন Git রিপোজিটরিতে মুভ করতে। এখন আমরা আমাদের নতুন রিপোজিটরি দেখছি, আমরা আমাদের ফাইল ভিউ এবং এডিট করা শুরু করতে পারি।
কাস্টম ক্লোন অপারেশন
Git clone কমান্ড কিছু প্যারামিটার অ্যাকসেপ্ট করে। আপনি এই প্যারামিটারগুলো ব্যবহার করে কাস্টম ক্লোন অপারেশন পারফর্ম করতে পারেন। চলুন git clone-এ কাজ করার সময় আপনার জানা দরকার মূল কাস্টম অপারেশনগুলোর একটি উদাহরণ এক্সপ্লোর করি।
একটি ফোল্ডারে ক্লোন করুন
ডিফল্টভাবে, রিপোজিটরির মতো একই নামের একটি ফোল্ডার তৈরি হয়। আমাদের প্রথম উদাহরণে, আমরা একটি ফোল্ডার নাম স্পেসিফাই না করে একটি রিপোজিটরি ক্লোন করেছিলাম। ফলস্বরূপ রিপোজিটরির কপিটি ck-git নামে থাকে। এটি কারণ আমরা কোনো ফোল্ডার নাম স্টেট করিনি।
তবে, আপনি যখন একটি রিপোজিটরি ক্লোন করছেন, তবে আপনি সেটিকে একটি নির্দিষ্ট ফোল্ডারে ক্লোন করতে চাইতে পারেন। আপনি একটি ডাইরেক্টরি নাম স্পেসিফাই করে এটি করতে পারেন যেতে একটি Git রিপোজিটরি ক্লোন করা উচিত।
আমরা git clone কমান্ডগুলো সেকেন্ড আর্গুমেন্টের সাথে এমনভাবে রান করতে পারি:
git clone
ধরা যাক, আমরা একটি হיפותেটিক্যাল Git repo-এর কন্টেন্ট "my-project" নামে একটি ফোল্ডারে ক্লোন করতে চাই। আমরা নিম্নলিখিত কোড ব্যবহার করে এটি করতে পারি:
git clone https://github.com/username/project-name.git my-project cd my-project
প্রথমে, আমাদের কোডটি আমাদের রেফারেন্স করা GitHub রিপোজিটরিটি ক্লোন করে। আমাদের উদাহরণে, আমরা একটি ফোল্ডার নাম স্পেসিফাই করেছি, "my-project", যেখান থেকে আমাদের রিপোজিটরির কোড ক্লোন হবে। তারপর, আমরা cd ব্যবহার করি git clone কমান্ড তৈরি করা my-project ফোল্ডারে মুভ করতে।
একটি শ্যালো ক্লোন তৈরি করুন
ডিফল্টভাবে, আপনি যখন একটি রিপোজিটরি ক্লোন করেন, রিপোজিটরির ইতিহাসও ক্লোন হবে। আপনার প্রজেক্টে সैकڑো কমিট থাকলে, একটি লোকাল ক্লোন তৈরি করতে বেশি সময় লাগবে।
পুরো রিপোজিটরি ক্লোন করা এড়াতে, আপনি একটি শ্যালো ক্লোন তৈরি করতে পারেন। শ্যালো ক্লোন শুধু "depth" প্যারামিটার দ্বারা স্পেসিফাই করা কমিটের ইতিহাস ক্লোন করে যা শ্যালো ক্লোন তৈরি করতে ব্যবহৃত হয়।
একটি শ্যালো ক্লোন তৈরির সিনট্যাক্স নিম্নরূপ:
git clone -depth=1
"depth" প্যারামিটারের ভ্যালু হলো আপনি কতগুলো হিস্টোরিক্যাল কমিট ক্লোন করতে চান। এই কেসে, আমরা "depth" প্যারামিটারের ভ্যালু ১ স্পেসিফাই করেছি। এর মানে clone কমান্ড শুধু সবচেয়ে রিসেন্ট কমিটটি আমাদের লোকাল মেশিনে কপি করবে।
ধরা যাক, আমাদের হיפותেটিক্যাল GitHub রিপোজিটরিতে ১০,০০০ কমিট রয়েছে, যার মানে এটি আমাদের লোকাল মেশিনে সম্পূর্ণ কপি হতে অনেক সময় লাগবে। আমরা শুধু বর্তমান কোড এবং এর ১০ লাস্ট কমিটের একটি কপি চাই, পুরো রিপোজিটরির ইতিহাস ক্লোন না করে। আমরা নিম্নলিখিত কোড ব্যবহার করে এটি করতে পারি:
git clone -depth=10 https://github.com/username/project-name.git
উপরের কমান্ডটি আমাদের প্রজেক্টের বর্তমান স্টেটের একটি কপি তৈরি করেছে। আমরা রিপোজিটরির ইতিহাসে ১০ কমিট পিছনে সার্চ করতে পারি। তবে, আমাদের প্রজেক্টে রিপোজিটরির ইতিহাসে আরও পেছনের কমিট সম্পর্কে কোনো ডেটা নেই।
Git clone কমান্ডের বিষয়ে আরও অ্যাডভান্সড কনফিগারেশন অপশন জানতে অফিশিয়াল Git ডকুমেন্টেশন পড়ুন।
Git URLs
Git clone কমান্ড দ্বারা সমর্থিত অনেক ধরনের URL টাইপ রয়েছে। Git clone কমান্ড সাধারণত রিমোট রিপোজিটরি ক্লোন করতে ব্যবহৃত হয়, তাই আমরা Git দ্বারা সমর্থিত মূল URL টাইপগুলো নিচে এক্সপ্লোর করব।
Git
Git প্রোটোকল Git ভার্সন কন্ট্রোল সিস্টেম ব্যবহার করে একটি রিপোজিটরি ক্লোন করতে ব্যবহৃত হয়। Git প্রোটোকল কোনো অথেন্টিকেশন মেথড ব্যবহার করে না। Git ভার্সন কন্ট্রোল সিস্টেম ব্যবহার করে একটি উদাহরণ URL:
git://host.com/repo/path.git
URLটি "git:" দিয়ে শুরু হয়, যা Git ক্লায়েন্টকে বলে Git প্রোটোকল ব্যবহার করে একটি রিপোজিটরি ক্লোন করতে।
SSH
Secure Shell, বা SSH, আপনাকে নেটওয়ার্কড সার্ভার রিমোটলি অ্যাক্সেস করতে দেয়। SSH অথেন্টিকেশন প্রদান করে, তাই SSH URLs সিকিউর Git রিপোজিটরির জন্য ব্যবহৃত হয়। SSH প্রোটোকল ব্যবহার করে একটি উদাহরণ Git URL:
ssh://user@host.com/repo/path.git
এই উদাহরণে, "user" সেই ইউজারের নামকে বোঝায় যিনি একটি নির্দিষ্ট রিপোজিটরি অ্যাক্সেস করার চেষ্টা করছেন। আমাদের SSH-এ সাইন ইন করতে হবে একটি রিপোজিটরি ক্লোন করার আগে।
HTTP
HyperText Transfer Protocol, বা HTTP, ইন্টারনেট জুড়ে ওয়েব পেজ ডেটা ট্রান্সফার করতে ব্যবহৃত হয়। HTTP URLs Git রিপোজিটরির জন্যও কমনলি ব্যবহৃত হয়। HTTP ব্যবহার করে একটি উদাহরণ Git URL:
https://host.com/repo/path.git
এই উদাহরণে, আমাদের রিপোজিটরি HTTPS প্রোটোকল ব্যবহার করে। "git" বা "ssh" এর বদলে, আমরা আমাদের Git রিপোজিটরি URL-এর শুরুতে "https" স্পেসিফাই করি।
উপসংহার
Git clone কমান্ড একটি Git রিপোজিটরির লোকাল কপি তৈরি করতে ব্যবহৃত হয়। ক্লোনিং আপনাকে একটি রিপোজিটরির একটি স্বতন্ত্র কপি তৈরি করতে দেয় যেখান থেকে আপনি আপনার প্রজেক্টের মেইন ভার্সনকে প্রভাবিত না করেই এডিট করতে পারেন।
আপনি যখন আপনার পরিবর্তনগুলো প্রজেক্টের মেইন ভার্সনে সংরক্ষণ করতে রেডি হন, তবে আপনি একটি কমিট তৈরি করতে পারেন।
এই টিউটোরিয়াল উদাহরণ সহ এক্সপ্লোর করেছে git clone কমান্ড কীভাবে ব্যবহার করতে হয়। এখন আপনার কাছে সেই নলেজ রয়েছে যাতে আপনি git clone ব্যবহার করে পেশাদার প্রোগ্রামার처럼 রিপোজিটরি ক্লোন করতে পারেন!