আমরা গিট এবং গিটহাবের বেসিক (Git and GitHub basics) নিয়ে জানবো, কিভাবে আপনার লোকাল কম্পিউটারে একটি প্রজেক্ট বানাবেন এবং তাকে গিটহাবে রাখবেন। আরও দেখবো কিভাবে আমরা আমাদের লোকাল প্রজেক্টের সাথে আমরা গিটহাবকে সিনক্রোনাইজ করবো। তাহলে শুরু করা যাক।

 

https://miro.medium.com/max/640/1*4iQ1ZFeBQZCsiPls_RBp1A.png

 

ভার্সন কন্ট্রোল কি? (What is version control)

ভার্সন কন্ট্রোল কি? আমাদের কেন ভার্সন কন্ট্রোল দরকার? (What is version control and why we should care?) >> যে পদ্ধতিতে কোনও প্রজেক্টের ফাইলগুলোর পরিবর্তন ট্র্যাক করে রাখা হয় যাতে করে আমরা পরে দরকারে আগের নির্দিস্ট ভার্সনে যেতে পারি তাকে ভার্সন কন্ট্রোল (Version Control System বা VCS) বলে। গিট প্রায় যেকোনো ফাইলের পরিবর্তন গুলো ট্র্যাক করে রাখতে পারে।

আপনি যদি কোন ওয়েব ডিজাইনার বা গ্রাফিক ডিজাইনার হন তাহলে আপনি চাইবেন আপনার প্রতিবারের করা ডিজাইন (ডিজাইন এর প্রতিটি ভার্সন) যেন সংরক্ষিত থাকে। এই কাজের জন্যই একটি ভার্সন কন্ট্রোল সিস্টেম (VCS) ব্যবহার করা হয়। যদি কখনো আপনার নতুন আপডেটে কোন সমস্যা হয় তাহলে আপনি version control system বা VCS ব্যবহার করে আমরা সিলেক্টেড ফাইলকে আগের অবস্থায় নিয়ে যেতে বা সম্পুর্ন প্রজেক্টকে আগের ভার্সনে নিয়ে যেতে পারি বা রিভার্ট (Revert) করতে পারি।

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

 

গিট কি? (What is Git?)

গিট হলো একটি Open-source ভার্সন কন্ট্রোল সিস্টেম যা দিয়ে আমরা একটি প্রজেক্টের ফাইল গুলোর পরিবর্তন ট্র্যাক করতে পারি। গিট ২০০৫ সালে লিনাক্স কার্নেলের জন্য প্রকাশ করা হয় যার স্রস্টা Linus Torvalds. অন্য কার্নেল ডেভেলপাররা এটার ডেভেলপমেন্ট এ কন্ট্রিবিউট করে। বর্তমানে এটা বিশ্বের সবচেয়ে জনপ্রিয় ভার্সন কন্ট্রোল সিস্টেম। git আপনার প্রজেক্টের লাস্ট স্টেট (snapshot) সেভ করার মাধ্যমে কাজ করে। লাস্ট snapshot থেকে যেসব ফাইল পরিবর্তন হয়েছে বা তৈরি হয়েছে গিট সেসব ফাইলকে রেখে দেয়

গিটের পরিভাষা পরিচিতি (Git terminology)

Git Bangla Tutorial: Git states কি?

গিটের তিনটি প্রাইমারি স্টেট রয়েছে। নিছে তিনটি স্টেট বর্ননা করা হলো।

  1. মডিফাইড – Modified : ফাইল পরিবর্তন করা হয়েছে, কিন্তু গিট এখন এইগুলো মার্ক করেনি। এই ফাইলগুলো গিটের পরবর্তি স্নাপশটে অন্তর্ভুক্ত হবেনা।
  2. স্টেজড – Staged: ফাইলের পরিবর্তন গুলো গিট ট্র্যাক করে রেখেছে, এবং এদের পরবর্তি গিট স্নাপশটে অন্তর্ভুক্ত করা যাবে।
  3. কমিটেড – Committed: ফাইল গুলো পরবর্তি গিট স্নাপশটের অন্তর্ভুক্ত করা হয়েছে।