1. Home
  2. গিটহাব
  3. গিট বেসিক
  4. গল্পের সাহায্যে গিট সম্পর্কে জানি

গল্পের সাহায্যে গিট সম্পর্কে জানি

ধরো, তোমার নাম রানা, এবং তুমি একজন নতুন সফটওয়্যার ডেভেলপার। তুমি খুবই উৎসাহী, কারণ তুমি একটি অ্যাপ্লিকেশন বানাতে চাও যেটা মানুষের দৈনন্দিন কাজগুলোকে আরও সহজ করবে। তাই তুমি একটা প্রজেক্ট শুরু করেছো এবং কোড লেখা শুরু করেছো।

প্রথম কিছু দিন বেশ ভালোই গেলো, কিন্তু এরপর সমস্যার মুখোমুখি হলে তুমি। কোডে বিভিন্ন পরিবর্তন আনতে গিয়ে তুমি আগের কিছু কোড হারিয়ে ফেলছো, কোন কোডটি ঠিকমতো কাজ করেছে বা কোনটি কাজ করেনি সেটা মনে রাখতে পারছো না, এমনকি পুরানো কোডে ফিরে যেতেও সমস্যা হচ্ছে। এরকম অবস্থায় যদি কেউ তোমাকে বলতো, এমন কোনো সিস্টেম আছে যা তোমার পুরো কোডের প্রতিটি পরিবর্তন সুন্দরভাবে সংরক্ষণ করবে, আর তুমি যখন খুশি, যেখানে খুশি ফিরে যেতে পারবে, তাহলে কেমন লাগতো?

গিট এবং এর প্রয়োজনীয়তা

এই সমস্যাগুলোর সমাধানই করে “গিট”। গিট হলো একটি ভার্সন কন্ট্রোল সিস্টেম (Version Control System)। এটি তোমার প্রতিটি কোড পরিবর্তনের রেকর্ড রাখে এবং পুরানো কোডে সহজেই ফিরে যেতে সাহায্য করে। গিটের মাধ্যমে তুমি:

  • প্রতিটি পরিবর্তনের ইতিহাস দেখতে পারবে।
  • যে কোনো সময় কোনো নির্দিষ্ট সংস্করণে ফিরে যেতে পারবে।
  • একসঙ্গে অনেক ডেভেলপার কাজ করতে পারবে, এবং সবার কাজ সুন্দরভাবে সংরক্ষণ করা যাবে।
  • ভুল হয়ে গেলে পুরানো কোনো স্টেজ বা সংস্করণে সহজেই চলে যেতে পারবে।

গিট কীভাবে কাজ করে: বাস্তব উদাহরণ

চলো, তোমার গিট প্রজেক্টটি সেটআপ করা এবং ব্যবহার শেখার জন্য আমরা ধাপে ধাপে একটি প্রাকটিক্যাল উদাহরণ দেখি।


ধাপ ১: গিট ইনস্টল করা

প্রথমেই, তোমার কম্পিউটারে গিট ইনস্টল করা দরকার। উবুন্টুতে ইনস্টল করার জন্য টার্মিনালে নিচের কমান্ডটি চালাও:

sudo apt update
sudo apt install git

এখন, তুমি গিট ইনস্টল করেছো এবং তোমার প্রোজেক্টে গিট ব্যবহার করতে প্রস্তুত।

ধাপ ২: প্রোজেক্টে গিট ইনিশিয়ালাইজ করা

ধরো, তুমি “my_app” নামে একটি ফোল্ডারে কাজ করছো। প্রথমে, ফোল্ডারটিতে গিট ইনিশিয়ালাইজ করতে হবে, যা তোমার প্রজেক্টটিকে একটি গিট রিপোজিটরি হিসেবে চিহ্নিত করবে:

cd my_app
git init

এখন, “my_app” ফোল্ডারটি একটি গিট রিপোজিটরি হয়ে গেলো। গিট এখন থেকে তোমার সব পরিবর্তন ট্র্যাক করবে।

ধাপ ৩: গিটে ফাইল যোগ করা এবং স্টেজ করা

এবার তুমি index.html নামে একটি ফাইল বানালে। গিটকে জানাতে হবে যে তুমি এই ফাইলটি ট্র্যাক করতে চাও। এজন্য আমরা git add কমান্ডটি ব্যবহার করব:

git add index.html

এখন index.html ফাইলটি “staged” হয়েছে, অর্থাৎ এটি পরবর্তী কমিটের জন্য প্রস্তুত।

ধাপ ৪: পরিবর্তন সংরক্ষণ করা (কমিট করা)

এখন এই পরিবর্তনগুলোকে সংরক্ষণ করতে হবে, যাকে আমরা “কমিট” বলা হয়। প্রতিটি কমিট একটি নির্দিষ্ট মেসেজ সহ সংরক্ষণ করা হয় যাতে পরবর্তীতে সহজে বোঝা যায় কী পরিবর্তন করা হয়েছে:

git commit -m "প্রথম কমিট: index.html ফাইল যোগ করা হলো"

এখন গিট তোমার এই পরিবর্তনগুলোকে তার ইতিহাসে সংরক্ষণ করলো। পরবর্তীতে তুমি চাইলে এই কমিটে ফিরে যেতে পারবে।

ধাপ ৫: অন্য কেউ প্রোজেক্টে কাজ করা

ধরো, তোমার বন্ধু রাব্বি একই প্রোজেক্টে কাজ করতে চায়। সে তার নিজের ল্যাপটপ থেকে তোমার প্রোজেক্টটি দেখতে চায়। এজন্য গিটে একটি অনলাইন রিপোজিটরি (যেমন GitHub) ব্যবহার করা যেতে পারে।

GitHub এ রিপোজিটরি তৈরি করা

১. GitHub এ লগইন করে একটি নতুন রিপোজিটরি তৈরি করো। ২. তারপর তোমার প্রোজেক্টটিকে GitHub এ পাঠাতে (পুশ করতে) নিচের কমান্ডটি ব্যবহার করো:

git remote add origin https://github.com/your-username/my_app.git
git push -u origin main

এখন রাব্বি এই প্রোজেক্টটি ক্লোন করে তার কম্পিউটারে কাজ করতে পারবে।

ধাপ ৬: একাধিক ডেভেলপার একসঙ্গে কাজ করা

এখন রাব্বি তার পরিবর্তনগুলো করতে পারবে এবং সেগুলো আবার রিপোজিটরিতে আপলোড করতে পারবে। ধরো, সে একটি style.css ফাইল যোগ করেছে এবং নিচের মতো কমিট করেছে:

git add style.css
git commit -m "style.css ফাইল যোগ করা হলো"
git push origin main

এরপর তুমি যদি তার পরিবর্তনগুলো পেতে চাও, তাহলে তোমাকে গিট রিপোজিটরি থেকে পুল করতে হবে:

git pull origin main

আরো কিছু গুরুত্বপূর্ণ কমান্ড

গিট ব্রাঞ্চিং

গিটে ব্রাঞ্চ তৈরি করা হয় যেন বিভিন্ন ফিচার বা ফিক্স আলাদা আলাদাভাবে তৈরি ও পরীক্ষণ করা যায়।

git branch new-feature
git checkout new-feature

গিট মার্জ

ব্রাঞ্চের কাজ শেষে মূল কোডের সাথে মিশিয়ে দিতে (merge) হয়।

git checkout main
git merge new-feature

সংক্ষেপে গিটের উপকারিতা

  • বিভিন্ন সংস্করণে সংরক্ষণ: আগের কোনো ভার্সনে ফিরে যাওয়ার সুবিধা।
  • সহজ পরিবর্তন পর্যবেক্ষণ: প্রতিটি পরিবর্তন এবং তার কারণ দেখা যায়।
  • দলীয় সহযোগিতা: একাধিক ডেভেলপার একই কোডে সহজে কাজ করতে পারেন।

এইভাবেই গিট তোমার প্রোজেক্টকে একটি সুশৃঙ্খলভাবে সংরক্ষণ ও ব্যবস্থাপনা করতে সাহায্য করে এবং একটি প্রফেশনাল ডেভেলপার হিসেবে কোডে কাজ করা অনেক সহজ করে তোলে।

How can we help?