গিট (Git) নিয়ে বিস্তারিত

by ultraDevs on February 19, 2020


গিট (Git) নিয়ে বিস্তারিতঃ
==================

=> পোষ্টটি একটু ধৈর্য ধরে পড়ুন। আশা করি যাদের গিট (Git) নিয়ে সমস্যা আছে। তারা এইটা পড়ার সাথে সাথে প্র্যাকটিস করলে অনেক কিছু শিখতে পারবেন।

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

=> চলুন জেনে নি, ভার্সন কন্ট্রোল সিস্টেম মানে কি?
বিষয়টা একটা উদাহরণ দিয়ে বুঝাই। ধরুন, আপনি একজন সফটওয়্যার ডেভেলপার। আপনি একটা সফটওয়্যার তৈরী করলেন। এবং সেটা “১.০.০” ভার্সনে গিটে রেখে দিলেন। এরপর আপনি পরবর্তীতে ঐ একই সফটওয়্যার এ যদি নতুন কোন ফিচার নিয়ে আসেন। সেটা এড করে সফটওয়্যারটিকে আবার গিটে “১.০.১” ভার্সনে রাখলেন। এইযে সফটওয়্যার টির দুইটি আলাদা আলাদা ভার্সন আপনি গিটে রাখলেন। এইটিই হচ্ছে, ভার্সন টাকে কন্ট্রোল করা।

এখন আপনার মনে আসতে পারে যে, এইটা তো আমরা আমাদের কম্পিউটারে ও করতে পারি। শুধু শুধু গিট কেন ব্যবহার করতে যাব… 😠😠

আপনি সেভাবে করলেন আরকি। তাহলে আপনাকে কি করতে হচ্ছে? সফটওয়্যার টা প্রথমে যে ভার্শনে সেটা কে এক ফাইলে রাখতে হবে। এবং নতুন ফিচার সংযুক্ত সফটওয়্যার টিকে আরেক টি ফাইলে রাখতে হবে।

বিষয় টা ঝামেলা পূর্ণ না। হয়ত অনেক সময় কোন টা কোন ভার্সন সেটাও গুলিয়ে ফেলবেন। কিন্তু গিট খুবই অর্গানাইজ এবং মিনিংফুল। আপনি এই ভিন্ন ভিন্ন ভার্সন গুলোর ভিন্ন ভিন্ন নাম দিয়ে ভার্শন অনুযায়ী গিটে রাখতে পারবেন। এছাড়াও গিটের আরো অনেক সুবিধা আছে… ❤️❤️

=> এর মধ্যে কয়েকটি হচ্ছে-

১. এটি ব্যবহার করা সহজ।
২. প্রজেক্ট কোলাবেরশন ও রিসার্চ।
৩. ইন্ডাস্ট্রিয়াল সাপোর্ট।
৪. অর্গানাইজ এন্ড মিনিংফুল।
৫. মাল্টিপল ডেভেলপারের কাজ করা সুবিধা।
৬. টিম হয়ে কাজ করা।
৭. ওপেন সোর্স প্ল্যাটফর্ম।
৮. অনলাইন ও অফলাইনে কাজ করা যায়।

=> আজকে আমরা গিট (Git) এর ব্যবহার শিখব।
===================================

১. গিট ইনস্টলেশন।
================
গিট এর অফিসিয়াল সাইটে গিয়ে “https://git-scm.com” গিট ডাউনলোড করে নিবেন। তারপর সেটা আপনার কম্পিউটারে ইনস্টল দিন।

এরপর আপনি যে ফোল্ডারে আপনার প্রজেক্ট ডেভেলপ করবেন। সেখানে গিয়ে রাইট বাটন চাপ দিলেই দুইটা প্রোগ্রাম দেখতে পাবেন। একটা হচ্ছে “Git Bash” এবং আরেকটি হচ্ছে “Git GUI” আপনাকে মূলত কাজ করতে হবে “Git Bash” এর মাধ্যমে। এবং “Git Bash” এ যা যা লেখা হবে সবকিছু হবে কমান্ড লাইনে।

২. গিট কনফিগারেশন।
==================
গিট ইনস্টল দেয়ার পরে অবশ্যই আপনাকে প্রথমে একবার গিট কনফিগারেশন টা সেট করে নিতে হবে আপনার গিট এর সার্ভার এর সাথে। গিটের কতগুলো সার্ভার আছে। যেগুলোতে আপনি আপনার প্রজেক্ট টাকে হোষ্ট করতে পারবেন। অর্থ্যাৎ, গিট ইউজ করে আপনি লোকাল থেকে রিমোট রিপ্রোজিটরিতে প্রজেক্ট পুশ করতে পারবেন।

পুশ কি, রিপ্রোজিটরি কি!! এগুলো নিয়ে আমরা একটু পরেই আলোচনা করব।

=> চলুন জেনে নিই কয়েকটি গিটের সার্ভার এর নামঃ

১. Github (গিটহাব)
২. Gitlab (গিটল্যাব)
৩. Bitbucktet (বিটবাকেট), ইত্যাদি।

=> কনফিগ করার জন্য যে কমান্ড ইউজ করবেনঃ

git config –global user.email “your github email”
git config –global user.name “yourusername”

নোটঃ কনফিগ করার আগে অবশ্যই গিটহাব এ গিয়ে একটা একাউন্ট তৈরী নিতে হবে। সেখানে ইউজ করা ইমেইল ও ইউজার নেম মুলত লোকালি, অর্থাৎ “Git Bash” এ ইউজ করতে হবে।

৩. গিট ইনিশিয়াইজ।
================

একটি যে প্রজেক্ট এ কাজ করেন না কেন। সে প্রজেক্টের ভিতরে গিয়ে প্রথমে একবার আপনাকে গিট ইনিশিয়ালাইজ করে নিতে হবে।

=> গিট ইনিশিয়ালাইজ এর জন্য যে কমান্ড ইউজ করবেনঃ

git init

এই কমান্ড দেয়ার সাথে আপনার প্রজেক্ট ফোল্ডারে একটা .git নামে ফোল্ডার তৈরী হয়ে যাবে। যেটা নরমালি দেখা যায়না, হিডেন অবস্থায় থাকে। এইটা আসলে মনে করবেন, গিট ইনিশিয়ালাইজ হয়েছে।

৪. গিট এ প্রজেক্ট এড করা।
====================

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

আর, যখন এইটা এড করে ফেলবেন তখন সেটা আনস্টেজ অবস্থায় থাকবে। আর কখন ফাইল কোন অবস্থায় আছে, সেটা আপনি ছোট একটি কমান্ড দিয়ে চেক করে নিতে পারেন। এটি হচ্ছে –

git status

এই কমান্ড দিলেই প্রজেক্টের ভিতরে ফাইল গুলো কোন অবস্থায় আছে আছে সেটা বুঝতে পারবেন।

=> প্রজেক্ট এড করার জন্য যে কমান্ড দিতে হবেঃ

git add .
git add [filename]
Example: git add index.php

এখানে খেয়াল রাখবেন। শুধু git add . দিলে মূল ডাইরেক্টরির ভিতরে সবগুলো ফাইল একসাথে এড হয়ে যাবে। আর git add index.php এভাবে লিখলে। শুধু স্পেসিফিক ফাইল এড হবে।

৫. গিট কমিট এর ব্যবহার।
====================

গিট কমিট দেয়ার আগের অবশ্যই আপনাকে এর আগের ধাপে ফাইলগুলোকে এড করে নিতে হবে।

এড করার পরে, এই কমান্ড দিতে হবেঃ

git commit -m “your commit message”
এখানে কমিট মেসেজ হিসেবে মিনিংফুল কিছু ওয়ার্ড ইউজ করুন। যাতে পরবর্তীতে কিজন্য কমিট দিচ্ছেন সেটা ধরতে পারেন। মূলত কমিটের মেসেজ উপর বেস করেই আপনি বুঝতে পারবেন, ফাইলের ভিতরে কি আছে এবং কিজন্য কমিট দিয়েছিলেন।

কমিট দেয়ার স্ট্যাটাস দিয়ে চেক করলেন। “working tree clean” নামে মেসেজ পাবেন।

৬. গিট রিমোট এড করা।
===================

লোকাল মেশিন থেকে ফাইলকে লাইভ সার্ভারে, অর্থাৎ গিটহাবে পুশ করতে হলে আপনাকে আপনার লোকাল প্রজেক্টটিকে লাইভ সার্ভারের সাথে লিংক করে নিতে হবে।

এক্ষেত্রে আপনি আপনার গিটহাব একাউন্টে গিয়ে একটি রিপ্রোজিটরি তৈরী করে নিবেন। রিপ্রোজিটরি তৈরীর পর, আপনি একটি “HTTPS” এবং “SSH” ইউআরএল পাবেন। সেখান থেকে “HTTPS” ইউ.আর.এল টা কপি করে। লোকাল প্রজেক্টে এই কমান্ডের মাধ্যমে রিমোট এড করুন।

git remote add origin [url]

এখানে আপনি যে ইউ.আর.এল টি এড করবেন। সে রিপ্রোজিটরি তে আপনার ফাইল টা যাবে।

রিপ্রোজিটরি বলতে এখানে প্রজেক্টের নাম দিয়ে একটি ফোল্ডার ই খুলা বুঝানো হয়।

৭. লোকাল থেকে রিমোটে প্রজেক্ট পুশ করা।
================================
এতোক্ষন যে প্রজেক্ট টি তৈরী করলেন, সেটা যদি আপনি আপনার সংযুক্ত করা রিপ্রোজিটরিতে দিতে চান তাহলে সেটা আপনাকে ফাইনালি পুশ করতে হবে। এই পুশের মাধ্যমেই প্রজেক্ট সার্ভারে সাবমিট হয়ে যাবে।

=> পুশ করার জন্য যে কমান্ড লিখবেনঃ

git push origin master
জেনে রাখা ভালো, এখানে origin হচ্ছে একটি alias এবং master একটি ব্রাঞ্চের নাম। গিটহাবের মোষ্ট পাওয়ারফুল এবং সুন্দর একটি ফিচার হচ্ছে এই ব্রাঞ্চ করা সুধিধা টা। মূলত, ব্রাঞ্চিং করেই কয়েকজন ডেভেলপার প্রজেক্ট নিয়ে রিসার্চ বা কাজ করতে পারে।

ডিফল্টভাবে সব ফাইল মাষ্টার ব্রাঞ্চে থাকে। এছাড়াও নিজেদের ইচ্ছামত ব্রাঞ্চ খুলে কাজ করা হয়।

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

কিভাবে মাল্টিপল ব্রাঞ্চ খুলে সেগুলোতে চেকাউট করতে হয়। এবং কিভাবে ব্রাঞ্চ মার্জ করতে হয়। ইত্যদি বিষয় সেখানে দেখানোর চেষ্টা করবো।

৮. গিটের অন্যন্য কিছু গুরুত্বপূর্ণ কমান্ডঃ
==============================

=> গিট কমিট লগ দেখার জন্য- git log

=> লগ কোড কোডের মাধ্যমে ফাইলের কোড চেক করা-
git show [past some word form logcode]

=> টেম্পোরারি ফাইলের ডেটা রিমুভ করার জন্য-
git stash

=> টেম্পোরারি ফাইলের ডেটা রিস্টোর করার জন্য
– git stash pop stash@{0}
=> গিট সার্ভার থেকে ফাইল ক্লোন করার জন্য-
git clone [url]
=> গিটের এক্সিস্টিং রিমোট ইউআরএল দেখার জন্য-
git romote show origin

=> গিট পুল এর জন্য-
git pull origin master

গিটে কাজ করতে হলে বেসিক পর্যায়ে এর ছেয়ে বেশী কিছু লাগেনা । এই পোষ্টে আমি সবকিছু অর্গানাইজভাবে লিখার চেষ্টা করেছি।

তাও যদি আপনাদের বুঝতে সমস্যা হয়। সেক্ষেত্রে হাসিন ভাইয়ের টিউটোরিয়াল গুলো ফলো করতে পারেন। ইউটিউবে সার্চ করলেই পাবেন।

কমান্ড লাইনে লিখতে গিয়ে কারো সমস্যা হলে এই পোষ্টের নিচে কমেন্ট করুন। আমি যথাসাধ্য উত্তর দেয়ার চেষ্টা করব।

সবাইকে ধন্যবাদ।

Blog Created By:
Humayun Ahmed
Web Developer