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

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

আশা করি যাদের গিট (Git) নিয়ে সমস্যা আছে। তারা এই লেখাটি পড়ার সাথে সাথে প্র্যাকটিস করলে অনেক কিছু শিখতে পারবেন। এবং আশা করি, আপনাদের আর কোন কনফিউশন থাকবেনা।

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

চলুন জেনে নি, ভার্সন কন্ট্রোল সিস্টেম মানে কি?

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

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

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

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

  • এটি ব্যবহার করা সহজ।
  • প্রজেক্ট কোলাবেরশন ও রিসার্চ।
  • ইন্ডাস্ট্রিয়াল সাপোর্ট।
  • অর্গানাইজ এন্ড মিনিংফুল।
  • মাল্টিপল ডেভেলপারের কাজ করা সুবিধা।
  • টিম হয়ে কাজ করা।
  • ওপেন সোর্স প্ল্যাটফর্ম।
  • অনলাইন ও অফলাইনে কাজ করা যায়।

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

১. গিট ইনস্টলেশন

গিট এর অফিসিয়াল সাইটে গিয়ে 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 hello.js

সবগুলো ফাইল একসাথে এড হয়ে যাবে। আর git add hello.js এভাবে লিখলে। শুধু স্পেসিফিক ফাইল এড হবে।

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

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

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

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 romote show origin

গিট সার্ভার থেকে ফাইল ক্লোন করার জন্য

git clone [url]

গিট পুল এর জন্য

git pull origin master

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