গিটহাব : কি এবং কিভাবে কাজ করে?

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


গিট কি?

একেবারে এক লাইনে বলতে হলে বলতে হয়, গিটহাব হচ্ছে এমন একটি প্লাটফর্ম, যা ডেভেলপারদের দ্বারা, ডেভেলপারদের জন্য এবং ডেভেলপমেন্ট প্রোসেসকে সহজ করার উদ্দেশ্য নিয়েই তৈরি করা হয়েছে। তবে গিটহাব প্লাটফর্মটিকে পুরোপুরি বোঝার জন্য আপনাকে সবার আগে জানতে হবে গিট (GIT) সম্পর্কে। গিট হচ্ছে ওপেন-সোর্স সফটওয়্যারগুলোর জন্য একটি ভার্সন কনট্রোল সিস্টেম যা ওই প্রোজেক্টটিতে কন্ট্রিবিউট করা সকল ডেভেলপারদের কাজকে আরও অনেকটা সহজ করে দেয়। এই ভার্সন কনট্রোল সিস্টেমটি চালু করেছিলেন সফটওয়্যার ইঞ্জিনিয়ার Linus Torvalds, যিনি লিনাক্স অপারেটিং সিস্টেম এর প্রতিষ্ঠাতা হিসেবে বেশি পরিচিত।

কিন্তু ভার্সন কনট্রোল সিস্টেমটিই বা কি? যখন কোন দেভেলপার একটি ওপেন সোর্স সফটওয়্যার বা যেকোনো প্রোজেক্ট তৈরি করেন, তারা তাদের প্রোজেক্টটির সোর্স কোড প্রতিনিয়ত চেঞ্জ করতেই থাকেন। প্রজেক্টের কোন বাগ ফিক্স করার জন্য, অথবা নতুন ফিচারস যোগ করার জন্য প্রতি নিয়ত সোর্স কোড চেঞ্জ করার দরকার পড়েই। প্রোজেক্টটির অফিসিয়াল রিলিজের পরেও সোর্স কোড চেঞ্জ করার দরকার হয় নতুন ভার্সন রিলিজ করার জন্য।

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

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

একইভাবে, সাধারন আপনার/আমার মতো লোকজন, যাদের এই প্রোজেক্টটির ডেভেলপমেন্টের সাথে কোন সম্পর্ক নেই, আমরাও চাইলে এই ভার্সন-কনট্রোল সিস্টেম ব্যাবহার করে প্রোজেক্টটির অ্যাক্সেস পেতে পারি বা নিজেদের প্রয়োজনে ব্যাবহার করতে পারি (যদি প্রোজেক্টটি ওপেন-সোর্স হয়)। আপনারা যারা লিনাক্স ব্যাবহার করেন, তারা এই সিস্টেমটির সাথে ভালোভাবেই পরিচিত আছেন।

তবে সাধারনত নরমাল ইউজাররা এভাবে লিনাক্সে সফটওয়্যার ইন্সটল করেন না। ভার্সন কনট্রোল সিস্টেম ব্যাবহার করে লিনাক্সে অ্যাপস ইন্সটল করা মূলত লিনাক্স গীকদের কাজ। তবে GIT একমাত্র ভার্সন কনট্রোল সিস্টেম, এমনটা নয়। এমন আরও অনেক ভার্সন কনট্রোল সিস্টেম আছে, তবে এগুলোর মধ্যে গিট ডেভেলপারদের মধ্যে সবথেকে জনপ্রিয় এবং মোস্টলি-ইউজড।

গিটহাব কি?

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

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

গিটহাব রিপোজিটরি

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

এছাড়া প্রাইভেট গিটহাব রিপোজিটরিও আছে। তবে এসব রিপোজিটরিতে ক্লোজড সফটওয়্যারের সোর্স কোড ওই সফটওয়্যারের কোম্পানির এমপ্লয়ীরা নিজেদের মধ্যে কোল্যাবোরেশনের জন্য ব্যাবহার করেন। তবে ওপেন-সোর্স সফটওয়্যারগুলোর রিপোজিটরির জন্যই গিটহাব রিপো-র জনপ্রিয়তা সবথেকে বেশি।

রিপোজিটরি ফর্কিং

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

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

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

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

গিটহাব শুধুমাত্র ডেভেলপারদের জন্য নয়!

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

Images: Shutterstock.com

About the author

সিয়াম

Add comment

Categories