22/08/2023
নতুনদের জন্য গিট এবং গিটহাবের প্রয়োজনীয়তা
ওয়েব ডেভেলপার থেকে শুরু করে, অ্যাপ ডেভেলপার, সফটওয়্যার ইঞ্জিনিয়ার সবারই যেই জিনিসটা জানা লাগে সেটা হচ্চে গিট, গিটহাব। এই স্কিল ছাড়া আপনি কর্পোরেট দুনিয়ায় কাজ করতে পারবেন না।
দাঁড়ান দাঁড়ান, ওয়েব ডেভেলপিং এর সাথে গিট এর কি সম্পর্ক?
একটু চিন্তা করেন তো, ডেভেলপাররা রিমোটলি কিভাবে কাজ করে? সে তো আর আপনার অফিসে বসে নেই যে আপনি তার পিসি থেকে পেন্ড্রাইভে করে নিয়ে নিবেন। ধরেন নিলেনও, কিন্তু একটা কোম্পানিতে তো আর খালি ফ্রন্টএন্ড ডেভেলপার থাকে না, তাছাড়া অনেক ডেভেলপার কাজ করে। আপনি যদি প্রত্যেকের পিসি থেকে পেন্ড্রাইভে নিয়ে কাজ করেন তাহলে আপনার কাজের থেকে সময় নষ্টই বেশি হবে। একটা টিমের সাথে কাজ করে দেখেন তাহলে দেখবেন গিট জিনিসটা ভাত খাওয়ার মতই দরকারি। আগ্রহী এখন? চলেন দেখি কিভাবে করা যায় সেটা।
গিট আর গিটহাব
গিট আর গিটহাব তো একই মনে হচ্ছে কিন্তু আপনি আলাদা করে লেখছেন কেন? কি পার্থক্য দুটির? গিট হচ্ছে আসল বস, যেটা কাজ করে বিহাইন্ড দা সিন। সেটা আমরা রিয়ালাইজ করি না। তাহলে গিটহাব কি কাজ করে এক্সাক্টলি? ওয়েল, গিটহাব জাস্ট আপনাকে গিট এর কাজ গুলো ভিজুয়ালাইজ করতে সাহায্য করে, যেমন গিটল্যাবও এমন একটি প্ল্যাটফর্ম। গিট আসে Unix OS থেকে, Unix হচ্চে Linux এর বাবা। মানে Unix থেকেই Linux এর জন্ম। গিট কে বলা হয় ভার্সন কন্ট্রোলার। মানে গিট এর মাধ্যমে আপনি বিভিন্ন এক্সপেরিমেন্ট করতে পারবেন তারপর সেটা ভার্সন আকারে রিলিজ করতে পারবেন। যেমন আমরা দেখি যে Pyhon 2.0 এর পর Python 3.0 আসছে। অথবা Python 3.8 এর পর 3.9 আসছে, এইযে বিভিন্ন ভার্সন আসে সেটা কিন্তু গিট দিয়ে নিয়ন্ত্রন করা হয়।
চলেন শুরু করি, সবার আগের আপনার পিসিতে Git থাকতে হবে, Linux এ সেটা দেওয়াই থাকে, Terminal ওপেন করে টাইপ করেন ($ সাইন দিয়ে Terminal বুঝিয়েছি, এটা টাইপ করার দরকার নেই, পরের লিখাতেও একইরকম)
$ git --version
যদি দেখেন git version 2.0 বা এইরকম কিছু তাহলে আপনার git ইন্সটল করার দরকার নাই।
পিসির ক্ষেত্রে:
১. আপনার পিসিতে সবার আগে Git ইনস্টল করা থাকতে হব
https://git-scm com/ থেকে গিট নামিয়ে নিতে হবে
২. তারপর আপনি Git Bash খুলে একে একে নিচের কমান্ড গুলো দিয়ে যাবেন,
$ git config --global user.name "Your Name" (Press Enter)
$ git config --global user.email "youremail@yourdomain com" (Press Enter)
এখানে সবার আগhttps://github com এ গিয়ে একটা একাউন্ট করে নিতে হবে, Your Name এর জায়গায় আপনার github এর username দিবেন, তারপর আপনি github এর মেইলটা দিবেন, এখন কিভাবে বুঝবেন যে আপনার ইমেইল, ইউজার নেইম ঠিকভাবে এসাইন হলো তার জন্য নিচে কমান্ড টাইপ করেন,
$ git config --global user.name (Press enter)
$ git config --global user.email (Press enter)
যদি দেখেন আপনার ইমেইল, ইউজার নেইম দেখাচ্ছে তাহলে আমরা পরের স্টেপ এ যেতে পারি।
এখন আপনি ২টা কাজ করতে পারেন, অন্য কারো রিপোজিটরি ক্লোন করতে পারেন অথবা নিজের কোড গুলো রিপোজিটরিতে রাখতে পারেন আপাতত নিজের কোডটা রিপোজিটরিতে রাখি। এক মিনিট, রিপোজিটরি আসলে কই থেকে? আপনিতো আগে কখনো এটার কথা বলেন নাই। আসলে সহজ ভাষায় আমাদের পিসিতে আমরা যেটাকে ফোল্ডার বলি, গিটহাব সেটার নাম দিয়েছে রিপোজিটরি। সহজ ভাষায় এটাই বুঝায়, অথবা একেকটা প্রজেক্টকে একেকটা রিপোজিটরি বলা যায়।
৩. গিটহাবে গিয়ে সবুজ "New" নামে একটা বাটন আছে সেটাতে ক্লিক করে নাম ধাম দিয়ে দিবেন। ব্যাস, আপনার রিপো রেডি। (রিপোজিটরিকে আদর করে রিপো ও বলে)।
৪. এখন ২টা মেথড আছে, আমি এখানে আমার কাছে যেটা সহজ লাগে সেটিই দেখাবো। এখন, আপনি সেই খালি প্রজেক্টটা আপনার পিসিতে ক্লোন করে নিবেন। ভয় পাওয়ার কিছু নেই, অন্যের রিপো ক্লোন করলেও আপনাকে কেউ কপিরাইট মামলা দিবে না। এটাই ওপেনসোর্স এর সিস্টেম। তাই যত খুশি ক্লোন করুন। নিচের কমান্ড টাইপ করুন
$ https://github com/mr-teslaa/Junior_School_and_College
এখানে আমি আমার একটা প্রজেক্ট ক্লোন করলাম (আপনারাও করতে পারেন, যদি Flask জানেন)। কিন্তু আপনারা git clone এর পর আপনাদের প্রজেক্ট/রিপো এর URL দিবেন।
৫. রিপো ক্লোন হওয়ার পর আমরা জাস্ট সেখানে নতুন কোড লিখতে পারি বা অন্য ফাইল গুলো মুভ করে নিয়া আসতে পারি, যেগুলো আমরা রিপো তে রাখতে চাচ্ছি।
৬. কাজ করা শেষ হলে এবার আমরা এই কোড গুলো আমার রিপো তে রাখবো। তার জন্য আমাদের নিচের কমান্ড গুলো টাইপ করতে হবে।
$ git add .
$ git commit -m "note for my self"
$ git push
আসলে কি হচ্ছে এখানে, git add মানে বুঝালাম যে কিছু কোড এর পরিবর্তন গুলো আমি ট্র্যাক করতে চাচ্ছি, যেগুলো আমি গিটহাব এ রাখবো। তারপর ( . ) ফুলস্টপ দিয়ে বুঝালাম যত ফাইল আছে সব ট্র্যাক কর। চাইলে খালি index.html ফাইলও add করা যাবে। সেটার জন্য কমান্ড হবে $ git add index.html
তারপর git commit এটা দিয়ে বুঝাচ্ছি কোড ট্র্যাক করা শেষ, এবার তুমি এই কোডগুলো গিটহাবে আপলোড করবে। -m "........." দিয়ে আমার নিজের বুঝার জন্য একটা নোট রাখলাম যেটা আমি বুঝবো, এই কোড আমি এই জন্য আপডেট করেছি। -m মানে মেসেজ আর ".." এর ভিতরে আপনার মেসেজটা।
তারপর git push দিয়ে বললাম যে "চল মেরি ঘোড়ে টিক টিক টিক"। মানে হচ্ছে আমি গিটকে বললাম আমার এই কোড গুলো গিটহাবে নিয়ে যাও। এই কমান্ড দিলেই আপনার কাছে গিটহাবের ইউজার নেইম, পাসওয়ার্ড চাইবে। ওইটা দেওয়ার পর আমি রিপোতে গেলাম, পেইজ রিফ্রেশ করলাম এ আমাদের কোড এখন দুনিয়ার সবাই দেখবে।