Git দিয়ে ভার্সন কন্ট্রোল শিখুন
সফটওয়্যার ডেভেলপমেন্টে ভার্সন কন্ট্রোল (version control) অপরিহার্য। Git হল সবচেয়ে জনপ্রিয় ডিস্ট্রিবিউটেড ভার্সন কন্ট্রোল সিস্টেম (distributed version control system)।
Git এর মৌলিক ধারণা
ভার্সন কন্ট্রোল (Version Control)
ভার্সন কন্ট্রোল হল কোডের পরিবর্তন ট্র্যাক করার একটি সিস্টেম। এটি আপনাকে সময়ের সাথে কোডের ইতিহাস দেখতে, পুরনো ভার্সনে ফিরে যেতে এবং একাধিক ডেভেলপারের কাজ সমন্বয় করতে সাহায্য করে।
Git কেন?
Git দ্রুত, ডিস্ট্রিবিউটেড (প্রতিটি ডেভেলপারের কাছে সম্পূর্ণ ইতিহাস থাকে), এবং নন-লিনিয়ার ডেভেলপমেন্টের জন্য উপযোগী (ব্রাঞ্চিং এবং মার্জিং (branching and merging) শক্তিশালী)। এটি ওপেন সোর্স এবং বড় কমিউনিটি সাপোর্ট আছে।
GitHub, GitLab, Bitbucket
এগুলি হল Git রিপোজিটরি হোস্টিং সার্ভিস (repository hosting services)। GitHub সবচেয়ে জনপ্রিয় যেখানে আপনি আপনার কোড রিমোটে স্টোর করতে পারেন, অন্য ডেভেলপারদের সাথে সহযোগিতা করতে পারেন এবং ওপেন সোর্স প্রজেক্টে অবদান রাখতে পারেন।
প্রয়োজনীয় Git কমান্ডসমূহ
রিপোজিটরি শুরু করা
বর্তমান ডিরেক্টরিতে একটি নতুন Git রিপোজিটরি (repository) তৈরি করে। এটি একটি লুকানো .git ফোল্ডার তৈরি করবে যেখানে সমস্ত ভার্সন কন্ট্রোল ডেটা সংরক্ষিত হবে।
রিপোজিটরি ক্লোন করা
একটি রিমোট রিপোজিটরি থেকে আপনার লোকাল মেশিনে সম্পূর্ণ প্রজেক্ট কপি করে। এটি সাধারণত GitHub, GitLab বা Bitbucket থেকে একটি প্রজেক্ট ডাউনলোড করার জন্য ব্যবহৃত হয়।
ফাইল স্টেজিং
git add . # সব ফাইল স্টেজ করতে
আপনার পরিবর্তনগুলোকে স্টেজিং এরিয়া (staging area) এ যোগ করে। স্টেজিং এরিয়া হল একটি মধ্যবর্তী স্থান যেখানে আপনি পরবর্তী কমিটে (commit) কী কী পরিবর্তন অন্তর্ভুক্ত করতে চান তা নির্ধারণ করেন।
কমিট করা
স্টেজ করা পরিবর্তনগুলোকে স্থায়ীভাবে রিপোজিটরির ইতিহাসে সংরক্ষণ করে। প্রতিটি কমিটের একটি ইউনিক আইডি (হ্যাশ) থাকে এবং একটি মেসেজ থাকে যা পরিবর্তনগুলো বর্ণনা করে। কমিট মেসেজ সবসময় স্পষ্ট এবং অর্থপূর্ণ হওয়া উচিত।
পরিবর্তন পুশ করা
আপনার লোকাল কমিটগুলোকে রিমোট রিপোজিটরিতে (যেমন GitHub) আপলোড করে। "origin" সাধারণত আপনার রিমোট রিপোজিটরির ডিফল্ট নাম এবং "branch-name" হল যে ব্রাঞ্চে আপনি পুশ করতে চান তার নাম।
ব্রাঞ্চ ম্যানেজমেন্ট
git branch <new-branch-name> # নতুন ব্রাঞ্চ তৈরি
git checkout <branch-name> # ব্রাঞ্চ পরিবর্তন
git merge <branch-name> # ব্রাঞ্চ মার্জ
ব্রাঞ্চিং আপনাকে মূল কোড থেকে আলাদা করে নতুন ফিচার বা ফিক্স কাজ করতে দেয়। প্রতিটি ব্রাঞ্চে কাজ সম্পূর্ণ হলে, আপনি তা মূল ব্রাঞ্চে (সাধারণত main বা master) মার্জ (merge) করতে পারেন।
সাধারণ Git ওয়ার্কফ্লো
প্রজেক্ট ক্লোন করুন
git clone <url>
নতুন ব্রাঞ্চ তৈরি করুন
git checkout -b <new-branch>
পরিবর্তন করুন এবং স্টেজ করুন
git add .
কমিট করুন
git commit -m "মেসেজ"
রিমোটে পুশ করুন
git push origin <branch>
পুল রিকুয়েস্ট তৈরি করুন
GitHub/GitLab এ PR খুলুন
Git ওয়ার্কফ্লো ডায়াগ্রাম
গুরুত্বপূর্ণ টিপস:
- প্রায়শই কমিট করুন - ছোট ছোট অর্থপূর্ণ কমিট ভালো
- কমিট মেসেজ স্পষ্ট এবং বর্ণনামূলক রাখুন
- মূল ব্রাঞ্চে সরাসরি কাজ করবেন না (main/master)
- পুশ করার আগে সবসময় রিমোট পরিবর্তন পুল করুন
- .gitignore ফাইল ব্যবহার করুন যা ট্র্যাক করা উচিত নয়
অতিরিক্ত সম্পদ
Pro Git বই
Git এর অফিসিয়াল ডকুমেন্টেশন এবং টিউটোরিয়াল। এটি Git শেখার জন্য সবচেয়ে সম্পূর্ণ রিসোর্স।
GitHub
বিশ্বের সবচেয়ে বড় Git হোস্টিং প্ল্যাটফর্ম। ওপেন সোর্স প্রজেক্ট এক্সপ্লোর করুন এবং নিজের প্রজেক্ট হোস্ট করুন।
Learn Git Branching
ব্রাঞ্চিং এবং মার্জিং শেখার জন্য ইন্টারেক্টিভ গেম। ভিজ্যুয়ালভাবে Git কমান্ডের প্রভাব বুঝতে সাহায্য করে।
Atlassian Git Tutorials
Git এর উপর গভীর টিউটোরিয়াল এবং বেস্ট প্র্যাকটিস গাইড। Bitbucket এর নির্মাতাদের থেকে।
Git শেখার বাংলা রিসোর্স
YouTube টিউটোরিয়াল:
- Anisul Islam - Git & GitHub
- Learn With Sumit - Git Complete Guide
- Coders Foundation - Git বাংলা টিউটোরিয়াল
ব্লগ পোস্ট:
- Git বাংলা গাইড - Dev.to
- GitHub ব্যবহারের সহজ গাইড - Medium
- Git এর বেসিক কমান্ড - Projukti Blog