ঢাকা, বাংলাদেশ   বুধবার ১৬ অক্টোবর ২০২৪, ১ কার্তিক ১৪৩১

গিট ও গিটহাব এবং হোস্টিং  প্ল্যাটফর্ম

ড. এম মেসবাহউদ্দিন সরকার

প্রকাশিত: ২১:২৮, ১৫ অক্টোবর ২০২৪

গিট ও গিটহাব এবং হোস্টিং  প্ল্যাটফর্ম

গিট ও গিটহাব এবং হোস্টিং  প্ল্যাটফর্ম

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

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

গিট ২০০৫ সালে লিনাক্স কার্নেলের জন্য প্রকাশ করা হয়, যার স্রষ্টা ‘লিনাস টারভাল্ডস’ (জন্ম ২৮ ডিসেম্বর ১৯৬৯, ফিনল্যান্ড, একজন ফিনিশ কম্পিউটার বিজ্ঞানী)। বর্তমানে গিট বিশ্বের সবচেয়ে জনপ্রিয় ভার্সন কন্ট্রোল সিস্টেম। গিট প্রজেক্টের সর্বশেষ স্টেট (স্ন্যাপশট) বা ভার্সন সেভ করার মাধ্যমে কাজ করে। অর্থাৎ সর্বশেষ ভার্সন থেকে যেসব ফাইল পরিবর্তন হয়েছে বা তৈরি হয়েছে, গিট সেসব ফাইলকে কন্ট্রোল বা ট্র্যাকিং করে।

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

এটা লোকাল কম্পিউটারও হতে পারে বা কোনো অনলাইন হোস্টিংও হতে পারে। এই রিপজিটরি সম্পূর্ণ কোডবেজ এবং প্রত্যেকটি রিভিশন হিস্টরি সেভ করে রাখে। গিট রিপজিটরি রাখার জন্য জনপ্রিয় অনলাইন হোস্টিং সার্ভিসগুলো হলো গিটহাব (এরঃঐঁন), গিটল্যাব (এরঃখধন) এবং বিটবাকেট (ইরঃনঁপশবঃ)। একটি গিট স্ন্যাপশট কোনো নির্দিষ্ট সময়ের সমস্ত ফাইল এবং ফোল্ডার ধারণ করে। কনটেন্টগুলোকে গিট ট্রি অবজেক্ট দ্বারা উপস্থাপন করা হয় এবং ডট গিট (.মরঃ) নামে একটি ফোল্ডারে রাখা হয়।

গিটের তিনটি প্রাইমারি স্টেট রয়েছে, এগুলো হলো : ১. মডিফাইড (গড়ফরভরবফ) : ফাইল পরিবর্তন করা হয়েছে, কিন্তু গিট এখন এগুলো মার্ক করেনি, এমন ফাইলগুলো গিটের পরবর্তী স্ন্যাপশটে অন্তর্ভুক্ত হবে না। ২. স্টেজড (ঝঃধমবফ): ফাইলের পরিবর্তনগুলো গিট ট্র্যাক করে রেখেছে এবং এদের পরবর্তী গিট স্নাপশটে অন্তর্ভুক্ত করা যাবে। ৩. কমিটেড (ঈড়সসরঃঃবফ) : ফাইলগুলো পরবর্তী গিট স্ন্যাপশটের অন্তর্ভুক্ত করা হয়েছে, এমনটা বোঝায়।
পক্ষান্তরে গিটহাব (মরঃযঁন) হচ্ছে ওয়েবভিত্তিক গিট রিপজিটরি হোস্টিং সেবা যা গিটের ডিস্ট্রিবিউটেড রিভিশন কন্ট্রোল এবং সোর্স কোড ম্যানেজমেন্ট (এসসিএম)-এর কার্যকারিতা এবং ফিচার উপস্থাপন করে। এটি বর্তমানে মাইক্রোসফটের অধীনস্থ একটি কোম্পানি, যেটি ২০১৮ সালে ৭.৫ বিলিয়ন ডলারে ক্রয় করে নেয়।

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

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

অন্যদিকে, গিটহাব (মরঃযঁন) হচ্ছে ওয়েবভিত্তিক গিট রিপজিটরি হোস্টিং সেবা, যা গিটের ডিস্ট্রিবিউটেড রিভিশন কন্ট্রোল এবং সোর্স কোড ম্যানেজমেন্ট (এসসিএম)-এর কার্যকারিতা এবং ফিচার উপস্থাপন করে। ২. গিট হলো কম্পিউটারে আগে কি কোড লিখেছেন এবং পরবর্তীতে তা কোথায় কোথায় পরিবর্তন করেছেন, তার ভার্সন বা রিভিশন কন্ট্রোল অনুযায়ী সংরক্ষণ করার একটি আদর্শ সিস্টেম।

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

এতে পৃথিবীর যে কোনো জায়গা থেকে যে কেউ যে কোনো প্রজেক্টে কাজ করতে পারে। তবে এই হোস্টিং জগতের সর্বাধুনিক টেকনোলজি হলো ক্লাউড হোস্টিং। সাধারণত যখন কোনো ওয়েবসাইট হোস্ট হয় তখন তা একটি সার্ভারে রাখা হয়। কিন্তু ক্লাউড হোস্টিংয়ের ক্ষেত্রে অনেক সার্ভারে ওয়েবসাইট ডাটা সেভ থাকে এবং সেখান থেকে ইউজারের কাছে পৌঁছায়। এতে ওয়েবসাইটের স্পিড অনেকটাই বেড়ে যায়। বিশ্বের সকল বড় বড় প্রতিষ্ঠান এখন ক্লাউড হোস্টিং ব্যবহার করে।

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

ফলে, তথ্যের ট্রাফিক বৃদ্ধির সঙ্গে সঙ্গে সহজেই ক্ষমতা বা স্কেলিং প্রয়োগ করতে অনুমতি দেয়। ৩. পারফরমেন্স ও গতিশীলতা : উন্নত সার্ভার এবং প্ল্যাটফর্ম ব্যবহার করে যা বিশেষ পারফরমেন্স ও গতিশীলতা সরবরাহ করে। এই হোস্টিং প্রক্রিয়াকে সময়, ভার্সন ও রেকর্ড অনুযায়ী প্রসেস করতে গিট এবং গিটহাব যথাক্রমে টুলস এবং সার্ভিস হিসেবে কাজ করে। অন্য কোথায়, গিট এবং গিটহাবের প্রয়োগ যথাযথভাবে কার্যকর হয় উপযুক্ত হোস্টিং সার্ভিস প্ল্যাটফর্মের জন্য। 


লেখক : অধ্যাপক এবং তথ্যপ্রযুক্তিবিদ, আইআইটি, জাহাঙ্গীরনগর বিশ্ববিদ্যালয়

×