গিট কি ? (What is Git?)

Quazi Md Aldin Fardin
3 min readJun 12, 2022

--

গিট কি এবং কেন গিট এত পপুলার?

গিট হচ্ছে পৃথিবির সব থেকে পপুলার ভার্শন কন্ট্রোল সিস্টেম । একটা ভার্শন কন্ট্রোল সিমপ্লি আমাদের কোড এর চেইঞ্জেস গুলা রেকর্ড রাখে সময়ের সাথে সাথে একটি ডেটাবেজে যার নাম রিপোজিরিটি(Repository) হিসেবে সর্ব পরিচিত ।গিট এর মাধ্যমে আমারা আমাদের প্রজেক্ট হিস্টরি চেক করতে পারি ,আমরা দেখতে পারি কে কি চেইঞ্জ করেছে ,কতটুকু চেইঞ্জ করেছে , কখন করেছে এবং কেন করেছে । যদি আমাদের প্রজেক্ট এ কোন গোলমাল পাকিয়ে ফেলি তাহলে আমরা সিমপ্লি আমাদের কোড এর আগের ভার্শন এ চলে যেতে পারব জাস্ট একটা কমান্ড এর মাধ্যমে।

যদি আমরা একই প্রজেক্ট অনেকজন মিলে করি এবং আমাদের প্রজেক্ট এ যদি কোন গিট অথবা ভার্শন কন্ট্রোলিং সিস্টেম ইউজ না করি তাহলে আমাদেরকে একই প্রজেক্ট অনেক গুলো ফোলন্ডরের কপি করতে হবে লাইক ভার্সন ১.০০ এর জন্য একটা ১.০.১ এর জন্য একটা এইভাবে অনেক গুলো ফোন্ডারের কপি করতে হবে যেটা মোটেও কোন ইফিসিয়েন্ট কাজ নাহ । আর সেটা যদি মাল্টিপল ডেভলপার অথবা প্রোগ্রামার একই প্রজেক্ট এ কাজ করেন তাহলে ভার্সন আর কোড ম্যানেজমেন্ট আর বেশি ঝামেলার হয়ে যায়

https://res.cloudinary.com/aldinn/video/upload/v1654900715/blog/git_02_eyhlcz.mp4?_=2

এখন আপনি প্রজক্ট মার্জ করতে গেলে অথবা প্রজেক্ট শেয়ার করতে গেলে আপনার টিমমেট এর সাথে তাহলে আপনাকে ইমেইল অথবা অন্য কোন ম্যাকানিজম ব্যাবহার করতে হবে যেটি সফটওয়্যার ইঞ্জিনিয়ারিং মোটেও সুখকর নয় । ঠিক এই জায়গায় গিট আমাদের এই কাজ গুলো করে । আমাদের এইসব প্রব্লেম গুলো সল্ভ করে ।

ভার্শন কন্ট্রোল সিস্টেম এর মাধ্যমে আমরা দুইটা কাজ করতে পারি

  • Track History
  • Work Together

আবার ভার্শন কন্ট্রোল সিস্টেম দুই প্রকার

  1. সেন্ট্রালাইজড
  2. ডিস্ট্রিবিউটেড

সেন্ট্রালাইজড সিস্টেম

সেন্ট্রালাইজড সিস্টেম এ সকল টিম মেম্বার একটি সেন্ট্রাল সার্ভারে কানেক্ট থাকে যাতে তারা লেটেস্ট কোড এর আপডেট পায় এবং তাদের চেইঞ্জেসটা সকল এর সাথে শেয়ার করার জন্য । Subversion, Microsoft Foundation Server এই সিস্টেম এর একটি উদাহরন ।

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

ডিস্ট্রিবিউটেড সিস্টেম

ডিস্ট্রিবিউটেড সিস্টেম এ আমাদের আবার এই সমস্যা নেই । প্রত্যেক টিম মেম্বার এর লোকাল মেশিন এ তাদের প্রজেক্ট হিস্ট্রি থাকে ফলে আমরা লোকালি সব কোড স্ন্যাপ্সহট গুলো লোকালি স্টোর করতে পারি ।

যদি আমাদের সার্ভার অফলাইনে থাকে তাও আমরা আমাদের প্রজেক্ট ডিরেkটলি সবার সাথে সিংক্রোনাইজ করতে পারি । Git & Mercurail এই সিস্টেম এর উদাহরন

এই সব গুলোর মোড গিট পৃথিবির সব থেকে জনপ্রিয় ভার্শন কন্ট্রোলিং সিস্টেম । কেননা ইহা

  1. ফ্রি
  2. ওপেন সোর্স
  3. সুপার ফাস্ট
  4. স্কেলেবল
  5. সবচেয়ে সহজ ব্রাঞ্চিং এন্ড মার্জিং

পৃথিবির ৯০% এর বেশি সফটওয়্যার ডেভলপমেন্ট হয়েছে গিট ইউজ করে । তাই প্রায় সব জব ডেস্ক্রিপশন এ গিট মাস্ট এড থাকে । যদি আপনি একটু জব খুজতেসেন অথবা জব করার পরিকল্পনা আছে তাহলে আপনি অবশ্যি গিট আপনার স্কিল বাকেট এ এড করতে হবে হবে সুতরাং দেরী নাহ করে আজই শিখা শুরু করে দিতে পারেন ।

--

--