কম্পিউটার টিউটোরিয়াল

গিট (Git) বIgিনার গাইড

আপনি যদি লিনাক্স ইউজার হন, তবে আপনি কখনো না কখনো গিটের সাথে মুখোমুখি হয়েছেন, সম্ভবত একটি নতুন প্রোগ্রাম ডাউনলোড করার চেষ্টা করার সময় বা CVS বা সাবভার্সন (Subversion) এর মত ভার্সন কন্ট্রোল সিস্টেম খোঁজার সময়। গিট হলো লিনাক্স কার্নেলের বিখ্যাত লাইনাস টরভাল্ডস (Linus Torvalds) দ্বারা তৈরি একটি রিভিশন কন্ট্রোল সিস্টেম, এক্সিস্টিং সমাধানগুলোতে অসন্তুষ্টির কারণে। ডিজাইনে মূল জোর ছিল স্পিডের ওপর, বা আরও স্পষ্টভাবে, ইফিশিয়েন্সির ওপর। গিট পূর্বের সিস্টেমের অনেক খামি সমাধান করে এবং সেটা অনেক কম সময়ে। আপনি যদি গিট শিখতে চান, তবে এই বIgিনার গাইড আপনাকে শুরু করতে সাহায্য করবে।

গিট কী করে?

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

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

গিট কীভাবে কাজ করে?

প্রতিটি প্রজেক্টের ডিরেক্টরি তার নিজস্ব গিট রিপোজিটরি। আপনি সেই প্রজেক্টের সকল ফাইল সেই ডিরেক্টরিতে রাখেন এবং পর্যায়ক্রমে গিটকে বলেন এর ইনফোর্মেশন আপডেট করুন ফাইলসের বর্তমান স্টেটের সাথে। গিটকে রেকর্ড করতে বলার এই প্রসেস হলো একটি commit। আপনি যতবার কমিট করেন (যা ঘন ঘন করা উচিত), গিট তার ট্র্যাক করা সকল ফাইল চেক করে এবং সেসব ফাইলের পার্থক্যগুলো (নয় সব নতুন ফাইল) ".git" ডিরেক্টরিতে সেভ করে। প্রতিটি কমিট আপনার প্রজেক্টের ডেভেলপমেন্টের জন্য একটি নতুন সেভ পয়েন্ট হয়ে যায়।

ঐচ্ছিকভাবে, আপনি আপনার লোকাল গিট রিপোজিটরি আউটসাইড হোস্টে পুশ করতে পারেন, যেমন গিটহাব (GitHub) বা আপনার নিজস্ব গিট সার্ভার। এটি একাধিক কন্ট্রিবিউটরকে একটি প্রজেক্টে তাদের লোকাল রিপোতে ঘন ঘন, দ্রুত কমিট করার সুযোগ দেয়, তারপর সকল লোকাল কমিট বান্ডল করে অনলাইন রিপোজিটরিতে একটি সিঙ্গেল আপডেট হিসেবে পুশ করতে।

এটি গিটকে কিছু অন্য ভার্সন কন্ট্রোল সিস্টেম (VCS) চেয়ে ফাস্টার ইউজ করার একটি কারণ: আপনি আপনার লোকাল রিপোজিটরিতে ঘন ঘন কমিট করতে পারেন সার্ভারে আপলোড করার জন্য প্রতিবার টাইম এবং ব্যান্ডউইথ ব্যয় ছাড়া।

গিট পাওয়া

অধিকাংশ লিনাক্স ডিস্ট্রো গিট প্রি-ইনস্টলড 상태로 আসে। আপনার সিস্টেমে এটা না থাকলে, আপনি আপনার সফটওয়্যার সেন্টার বা প্যাকেজ ম্যানেজার থেকে সহজে ইনস্টল করতে পারেন, কারণ অধিকাংশ রিপোজিটরিতে এটি সহজে পাওয়া যায়।

আপনি টার্মিনালে ইনস্টল করতে পারেন:

# Debian/Ubuntu sudo apt install git-all # Fedora sudo dnf install git-all

আপনি অন্য প্ল্যাটফর্মে থাকলে বা অন্যথা কারণে সেসব রিপোজিটরি ব্যবহার না পারলে, আপনি এখান থেকে ম্যানুয়ালি প্যাকেজ ডাউনলোড ও ইনস্টল করতে পারেন।

গিট ব্যবহার করা

একটি লোকাল গিট রিপোজিটরি তৈরি করার প্রসেস দ্রুত এবং সহজ। প্রথমে, আপনার প্রজেক্টের জন্য একটি ডিরেক্টরি তৈরি করুন এবং আপনার টার্মিনাল সেখানে খুলুন।

cd /my-git-directory

গিট রিপো ইনিশিয়েট করুন কমান্ড দিয়ে:

git init

এটি একটি ".git" ডিরেক্টরি তৈরি করবে (ভিউ থেকে হিডেন) যেটি আপনার রিপোজিটরি ইনফোর্মেশন ধারণ করবে। সম্ভবত, আপনি কিছু ফাইল যোগ করতে চাইবেন। আমরা একটি সিম্পল README ফাইল তৈরি করব, এটিকে রিপোজিটরির ফাইলস টু واাচ লিস্টে যোগ করব, তারপর আমাদের ফাইলটি রিপোজিটরিতে কমিট করব।

# নতুন ফাইলে কিছু টেক্সট ইনসার্ট করুন echo "TODO: Create documentation" > README.txt # এখন গিটকে বলুন এই ফাইলটির চেঞ্জগুলো ট্র্যাক রাখতে # এটি শুধু একবারই করতে হয় প্রতি ফাইলের জন্য (আরো বিস্তারিত পরের বিভাগে) git add README.txt # এবং এখন গিট রিপোজিটরিতে স্টেট সেভ করুন git commit README.txt

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

যদি উপরের প্রসেসের aikana গিট একটি এরর থ্রো করে বলে সেটি আপনাকে রিকগনাইজ করতে পারছে না, তবে আপনাকে বলতে হবে আপনি কে। এটি করার মত সহজ:

git config --global user.name "Your_Username" git config --global user.email "your_email_address@mailserver.com"

আমরা এসেনশিয়ালি সেই ফাইলটির বর্তমান স্টেটের একটি স্ন্যাপশট তৈরি করলাম। যেকোনো další চেঞ্জ (যে আপনি কমিট করবেন) সেটার ওপর সেভ হবে।

প্রতিটি ফাইল আলাদা করে অ্যাড ও কমিট করা, উপরের উদাহরণের মত, টেডিয়াস হতে পারে। এর রিমেডি হিসেবে, আপনি বর্তমান ডিরেক্টরির সকল ফাইল একসাথে অ্যাড করতে পারেন:

# ট্রেইলিং "." নোট করুন git add .

আপনি সকল জানা চেঞ্জড ফাইল একসাথে কমিট করতে পারেন:

git commit -a

অন্যান্য কিছু হ্যান্ডি গিট কমান্ড অপশন:

# এক্সিস্টিং রিপোজিটরির একটি ফুল ক্লোন বানান, যেমন একটি সফটওয়্যার প্রজেক্টের ওয়েবসাইট থেকে git clone (URL, ie git://github.com/github/linux-2.6.git) # একটি ফাইল মুভ/রিনেম করুন। এটি আপনাকে রিমুভ এবং রি-অ্যাড করতে হয় না # যদি ব্যাশ দিয়ে মুভ করা হতো git mv (source) (destination) # একটি ফাইল ডিলিট করুন এবং গিট রিপো থেকে রিমুভ করুন git rm (target) # এই রিপোজিটরিতে ব্রাঞ্চ দেখুন git branch # গিট ট্রির একটি নতুন ব্রাঞ্চ তৈরি করুন git branch (new branch name, ie "experimental") # একটি ব্রাঞ্চ থেকে অন্য ব্রাঞ্চে স্যুইচ করুন git checkout (branch name, ie "experimental") # ব্রাঞ্চ (branch) করেন্ট ট্রি-এ মার্জ করুন git merge (branch)

বেশ্য, এটি শুধু গিট যা করতে পারে তার শুরু। একবার গিট মাস্টার করলে, আপনি গিটহাব দিয়ে শুরু করতে পারেন এবং লার্ন করতে পারেন কীভাবে পুল রিকোয়েস্টে স্ক্রিনশট এবং অ্যানিমেশন অ্যাড করবেন।

  1. Android Studio-এর বигিনার গাইড (The Beginner's Guide to Android Studio)

  2. অ্যাপল ওয়াচ কীভাবে ব্যবহার করবেন: আপনার ওয়াচ নেভিগেট করার বিগিনার গাইড

  3. টাচ টাইপিং শেখার Débutant গাইড

  4. HTML এবং CSS-র শুরুতাবদের গাইড