১.১ গিট কি ও কেন ব্যবহার করি?
গিট কী?
গিট (Git) হলো একটি ওপেন সোর্স ভার্সন কন্ট্রোল সিস্টেম (VCS), যা মূলত ডেভেলপাররা ব্যবহার করে তাদের কোডের পরিবর্তন ট্র্যাক করতে। এটি আপনার ফাইলের প্রতিটি পরিবর্তনের ইতিহাস রাখে — যেন দরকার হলে আগের অবস্থায় ফিরে যাওয়া যায়।
ভার্সন কন্ট্রোল মানে কী?
ধরেন, আপনি একটা প্রজেক্টে কাজ করছেন। প্রথমে ফাইলটা ছিল এরকম:
index.html
কিছুক্ষণ পর আপনি এটিতে নতুন কিছু যুক্ত করলেন:
<h1>Hello, world!</h1>
তারপর আবার বদলে লিখলেন:
<h1>Hello, Git!</h1>
এখন আপনি যদি পুরোনো কোডে ফিরে যেতে চান, তখন গিট ছাড়া সেটা সম্ভব নয় যদি না আপনি নিজে আলাদা করে ফাইলের কপি রেখে থাকেন (যেমন: index_v1.html, index_final.html) — যা ঝামেলাপূর্ণ।
গিট এই কাজটাই করে স্বয়ংক্রিয়ভাবে। আপনি শুধু git commit দিয়ে প্রতিটি পরিবর্তন “সেভ” করেন, আর গিট তা একটা টাইমলাইন হিসাবে সংরক্ষণ করে।
গিট কীভাবে সাহায্য করে?
১. হিস্ট্রি সংরক্ষণ: কে, কখন, কী পরিবর্তন করেছে — সব সংরক্ষিত থাকে।
২. ব্যাকআপ: গিট হাব (GitHub), গিটল্যাব (GitLab) এর মতো প্ল্যাটফর্মে আপলোড করলে কোড নষ্ট হলেও আপনি ক্লাউড থেকে ফেরত আনতে পারবেন।
৩. টিমওয়ার্ক: একসাথে অনেক মানুষ একই প্রজেক্টে কাজ করতে পারে, গিট সবার কোড ম্যানেজ করে।
৪. ফিচার ব্রাঞ্চ: নতুন ফিচার বা এক্সপেরিমেন্ট করার জন্য আলাদা ব্রাঞ্চ বানিয়ে মূল কোড নষ্ট না করেই কাজ করা যায়। (বিস্তারিত সামনে আসবে)
উদাহরণ
ধরেন আপনি একটা ওয়েবসাইট বানাচ্ছেন। প্রথমে ফাইল তৈরি করলেন:
$ mkdir my-website
$ cd my-website
$ echo "<h1>Welcome</h1>" > index.html
এখন এই প্রজেক্টে/ফোল্ডারে গিট চালু করেন:
$ git init
Initialized empty Git repository in my-website/.git/
তারপর ফাইলটা গিটকে জানান ও সেভ করুন:
$ git add index.html
$ git commit -m "Initial commit with welcome page"
এখন আপনি চাইলে, যখনই কোনো পরিবর্তন করেন, তা গিটকে দিয়ে সেভ করতে পারবেন।
ধরেন এইচটিএমএল বদলে দিলেন:
<h1>My Awesome Website</h1>
সেটা আবার সেভ করুন:
$ git add index.html
$ git commit -m "Updated title to awesome"
এইভাবে প্রতিটি পরিবর্তন একটা করে স্টেপ হয়ে থাকবে, যেটাতে আপনি পরে ফিরে যেতে পারবেন।
উপসংহার
গিট আপনার কোডের একটা টাইম মেশিন।
আপনি যা-ই করেন, গিট সেটা মনে রাখে, গুছিয়ে রাখে, আর দরকার হলে ফিরিয়ে দেয়। তাই একা বা টিমে কাজ করার সময় গিট শেখা আজকাল আবশ্যক।