Git ভার্সন কন্ট্রোল (version control)

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 init

বর্তমান ডিরেক্টরিতে একটি নতুন Git রিপোজিটরি (repository) তৈরি করে। এটি একটি লুকানো .git ফোল্ডার তৈরি করবে যেখানে সমস্ত ভার্সন কন্ট্রোল ডেটা সংরক্ষিত হবে।

রিপোজিটরি ক্লোন করা

git clone <repository-url>

একটি রিমোট রিপোজিটরি থেকে আপনার লোকাল মেশিনে সম্পূর্ণ প্রজেক্ট কপি করে। এটি সাধারণত GitHub, GitLab বা Bitbucket থেকে একটি প্রজেক্ট ডাউনলোড করার জন্য ব্যবহৃত হয়।

ফাইল স্টেজিং

git add <filename>
git add . # সব ফাইল স্টেজ করতে

আপনার পরিবর্তনগুলোকে স্টেজিং এরিয়া (staging area) এ যোগ করে। স্টেজিং এরিয়া হল একটি মধ্যবর্তী স্থান যেখানে আপনি পরবর্তী কমিটে (commit) কী কী পরিবর্তন অন্তর্ভুক্ত করতে চান তা নির্ধারণ করেন।

কমিট করা

git commit -m "আপনার কমিট মেসেজ এখানে"

স্টেজ করা পরিবর্তনগুলোকে স্থায়ীভাবে রিপোজিটরির ইতিহাসে সংরক্ষণ করে। প্রতিটি কমিটের একটি ইউনিক আইডি (হ্যাশ) থাকে এবং একটি মেসেজ থাকে যা পরিবর্তনগুলো বর্ণনা করে। কমিট মেসেজ সবসময় স্পষ্ট এবং অর্থপূর্ণ হওয়া উচিত।

পরিবর্তন পুশ করা

git push origin <branch-name>

আপনার লোকাল কমিটগুলোকে রিমোট রিপোজিটরিতে (যেমন GitHub) আপলোড করে। "origin" সাধারণত আপনার রিমোট রিপোজিটরির ডিফল্ট নাম এবং "branch-name" হল যে ব্রাঞ্চে আপনি পুশ করতে চান তার নাম।

ব্রাঞ্চ ম্যানেজমেন্ট

git branch # ব্রাঞ্চ তালিকা দেখতে
git branch <new-branch-name> # নতুন ব্রাঞ্চ তৈরি
git checkout <branch-name> # ব্রাঞ্চ পরিবর্তন
git merge <branch-name> # ব্রাঞ্চ মার্জ

ব্রাঞ্চিং আপনাকে মূল কোড থেকে আলাদা করে নতুন ফিচার বা ফিক্স কাজ করতে দেয়। প্রতিটি ব্রাঞ্চে কাজ সম্পূর্ণ হলে, আপনি তা মূল ব্রাঞ্চে (সাধারণত main বা master) মার্জ (merge) করতে পারেন।

সাধারণ Git ওয়ার্কফ্লো

1

প্রজেক্ট ক্লোন করুন

git clone <url>

2

নতুন ব্রাঞ্চ তৈরি করুন

git checkout -b <new-branch>

3

পরিবর্তন করুন এবং স্টেজ করুন

git add .

4

কমিট করুন

git commit -m "মেসেজ"

5

রিমোটে পুশ করুন

git push origin <branch>

6

পুল রিকুয়েস্ট তৈরি করুন

GitHub/GitLab এ PR খুলুন

Git ওয়ার্কফ্লো ডায়াগ্রাম

গুরুত্বপূর্ণ টিপস:

  • প্রায়শই কমিট করুন - ছোট ছোট অর্থপূর্ণ কমিট ভালো
  • কমিট মেসেজ স্পষ্ট এবং বর্ণনামূলক রাখুন
  • মূল ব্রাঞ্চে সরাসরি কাজ করবেন না (main/master)
  • পুশ করার আগে সবসময় রিমোট পরিবর্তন পুল করুন
  • .gitignore ফাইল ব্যবহার করুন যা ট্র্যাক করা উচিত নয়

অতিরিক্ত সম্পদ

Git শেখার বাংলা রিসোর্স

YouTube টিউটোরিয়াল:

  • Anisul Islam - Git & GitHub
  • Learn With Sumit - Git Complete Guide
  • Coders Foundation - Git বাংলা টিউটোরিয়াল

ব্লগ পোস্ট:

  • Git বাংলা গাইড - Dev.to
  • GitHub ব্যবহারের সহজ গাইড - Medium
  • Git এর বেসিক কমান্ড - Projukti Blog