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