Monday, August 21, 2017

গিট(About git) সম্পর্কে একটু (For Windows)





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




আমি Microsoft Windows 7 ultimate ব্যবহার করি। তাই Windows এ কীভাবে গিট ব্যবহার করবেন সেটাই জানাবো।

গিট ইন্সটল(Windows) 
প্রথমে আপনাকে https://git-scm.com/download/win ঠিকানা থেকে গিট ডাউনলোড করে নিতে হবে। তারপর সেটি ইন্সটল দিলে আপনি আপনার লোকাল গিটের মালিক হয়ে যাবেন এবং সাথে সাথে gitbash এবং git CMD পেয়ে যাবেন। প্রথমে আপনাকে gitbash টি খুলতে মানে ওপেন করতে হবে। সেখানে গিট কনফিগার করতে হবে।

গিট কনফিগারঃ 




কনফিগার করতে gitbash এ নিচের কম্যান্ড দুটি লিখতে হবে।

git config --global user.name "Your Name Here"
git config --global user.email "your_email@youremail.com"

এখানে Your Name Here এর জায়গায় আপনার নাম এবং your_email@yourmail.com এর জায়গায় আপনার ইমেইল টি বসাতে হবে। ব্যাস, আপনার গিট কনফিগার হয়ে গেছে। আপনি যদি আবার পুনরায় আপনার ইউজার নেম ও ইমেইল দেখতে চান তবে নিচের কম্যান্ড দুটি লেখলেই দেখতে পাবেন।

git config user.name
git config user.email

গিট ইনিশিয়ালাইজেশনঃ 



গিট ইনিশিয়ালাইজেশন বিষয়টি বুঝতে হলে সাধারণত একটি উদাহরণের সাহায্য নিতে হবে। তো উদাহরণ দিয়েই শুরু করি।
প্রথমে আপনার git CMD টি ওপেন করুন। আমরা প্রথমে আমাদের Desktop এ একটি ডাইরেক্টরি তৈরি করবো। সেখানে কিছু ফাইল তৈরি করবো এবং পরিশেষে গিট ইনিশিয়ালাইজ করবো।
তো git CMD কে আগে নিয়ে যেতে হবে আমাদের ডাইরেক্টরি Desktop এ । সেজন্য নিচের কম্যান্ড টি লিখতে হবে।
C:\User\Sagor> ডিফল্ট হিসাবে আছে। এখানে Sagor হলো আমার কম্পিউটারে নাম। আপানার ক্ষেত্রে আপনার টা থাকবে। Desktop এ নিয়ে যেতে C:\User\Sagor>cd desktop কম্যান্ডটি লিখলেই git CMD চলে যাবে ডেস্কটপে। এখন আমরা TestGit নামে একটি ডাইরেক্টরি তৈরি করবো। সেজন্য নিচের কম্যান্ডটি লিখতে হবে

mkdir TestGit

(existing কোন ফোল্ডার বা ডাইরেক্টরিকে গিট ইনিশিয়ালাইজ করতে হলে ঐ ফোল্ডারে git CMD কে নিয়ে গিয়ে নিচের নিয়ম ফলো করলেই হবে)

git CMD তে উক্ত কম্যান্ড লেখার পরে ইন্টার চাপার সাথে সাথেই দেখবেন আপনার ডেস্কটপে ঐ নামে একটি ফোল্ডার তৈরি হয়ে গেছে। এখন ঐ ফোল্ডারটি আমরা গিট নিশিয়ালাইজ করবো। সেজন্য git CMD কে ঐ ফোল্ডারের ভীতরে নিয়ে যেতে হবে। সেজন্য আগের মতই লিখবো
cd TestGit
আমদের git CMD চলে গেছে TestGit ফোল্ডারের ভীতর। এখন নিচের কম্যান্ডটি লিখলেই গিট ইনিশিয়ালাইজ হয়ে যাবে।

git init

আপাতত কাজ শেষ।
গিট কমিটঃ 
গিট কমিট(commit) মানে সাধারণত কতটুকু পরিবর্তন করেছি সেটাকে আপডেট বা হালনাগাদ করা বুঝায়। এখন আছি আমরা TestGit ফোল্ডারে। সেখানে আমরা একটি টেক্সট ফাইল তৈরি করবো এবং সেটাকে গিট কমিট করবো।
একটি টেক্সটফাইল তৈরি করতে git CMD তে নিচের কম্যান্ডটি লিখতে হবে।
echo "Hell World" >> Hello.txt
ইন্টার চাপার সাথে সাথে দেখবো আমাদের TextGit ফোল্ডারে Hello.txt নামে একটি ফাইল তৈরি হয়ে গেছে। গিট ইনিশিয়ালাইজ করার সময় তো এটি ছিলো না। তার মানে আমরা গিটে পরিবর্তন করেছি। সেটা গিটকে জানাতে হবে। আর এই জানানোই গিট কমিট। সেজন্য আমরা সব ফাইল গিটে যোগ করবো এবং কমিট করবো।  সেজন্য নিচের কম্যান্ডটি লিখতে হবে।
git add *

(এখানে * মানে সব ফাইল, সিঙ্গেল ফাইলের জন্য git add filename লিখতে হবে)

কম্যান্ডটি লিখলে সব ফাইল (আমাদের একটি ফাইল) গিটে যোগ হবে। এবার নিচের কম্যান্ডটি লিখে কমিট করতে হবে।

git commit -m "First commit"

(এখানে First commit হলো আপনার  মেসেজ, মানে কি পরিবর্তন করেছেন সেটা মনে রাখার কিছু শব্দ)

ব্যাস, গিট কমিট হয়ে গেছে।

গিট লোকাল রিপোজেটোরি থেকে রিমোট রিপোজেটোরিতে পাঠানোঃ 
এখন আমরা আমাদের TextGit ফোল্ডারটিকে github কিংবা bitbucket অনলাইন ভার্সন কন্ট্রোলে পাঠাবো। সেজন্য আমাদের github কিংবা bitbucket এ রেজিস্ট্রেশন করতে হবে। স্বাভাবিক নিয়মেই আমরা সেটি করতে পারবো।
করার ফলে সেখানে আমরা Sign in করবো।
এখানে উদাহরণ হিসাবে আমি bitbucket ব্যবহার করবো। github এ ব্যক্তিগত বা প্রাইভেট রিপো ফ্রিতে তৈরি করা যায় না। কিন্তু bitbucket এ যায়।

বিটবাকেটে সাইন ইন করার পর হাতের বাম দিকে একটি প্লাস বাটন দেখতে পারবেন। এটি হলো রিপোজেটরি তৈরির বাটন। সেটিতে ক্লিক করুন। সেখানে থেকে Repository সেলেক্ট করুন। এবং আপনার রিপোজেটরির নাম দিন। অবশ্যই প্রাইভেট কি পাবলিক করতে চান সেটি টিক দিয়ে বুঝিয়ে দিন।


ব্যাস, রিপোজেটরি তৈরি হয়ে গেছে। নিচের দিকে দেখুন I have an existing project
এটিতে ক্লিক করলে আপনাকে দুইটি কম্যান্ড দিবে। আমার ক্ষেত্রে কম্যান্ড দুইটি হলো


git remote add origin https://sagorbrur@bitbucket.org/sagorbrur/testgittutorial.git


git push -u origin master

কম্যান্ড দুইট একটি একটি করে কপি করে  git CMD তে পেস্ট করুন এবং ইন্টার চাপুন।
একই সাথে দুইটি কপি করে আবার পেস্ট করে ইন্টার চাপবেন না।
দ্বিতীয় কম্যান্ডটি পেস্ট করে ইন্টার চাপলে আপনার bitbucket password চাইবে। সেটি লিখে ইন্টার দিন। ব্যাস, কাজ শেষ। এবার বিটবাকেট এ আপনার সেই রিপোতে রিফ্রেস দিন। দেখবেন আপনার লোকাল রিপো বিটবাকেট। 

লোকাল ফোল্ডারে পরিবর্তন করে রিমোট ফোল্ডারে কমিট করাঃ 

ধরুন, আপনি লোকাল ফোল্ডারে বা ফাইলে কোন পরিবর্তন করলেন। এবং পরিবর্তন করার পর গিটে সেটি যোগ ও  কমিটও করে ফেললেন। এবার ঐ কমিটকৃত ফোল্ডারটি আবার রিমোট রিপোতে push করতে হবে। এ জন্য নিচের কম্যান্ডটি লিখতে হবে।

git push 
https://sagorbrur@bitbucket.org/sagorbrur/testgittutorial.git --all

git push --all

এখানে https://sagorbrur@bitbucket.org/sagorbrur/testgittutorial.git এটি আমার রিপো এড্রেস। আপনার ক্ষেত্রে আপনারটি লিখতে হবে। কাজ শেষ।

যদি উপরের নিয়ম কাজ না করে তবে নিচের পদ্ধতি প্রয়োগ করতে পারেন। 
git pull https://github.com/username/repository master

git push -u origin master

এছাড়াঃ
আপনি যদি অন্য কারো ওপেন প্রজেক্টে অবদান রাখতে চান তবে আগে সেই প্রজেক্টে Fork করতে হবে এবং তারপর Pull Request পাঠাতে হবে। তিনি যদি গ্রহন করেন তবেই আপনি সেই প্রজেক্টে অবদান রাখতে পারবেন। 



No comments:

Post a Comment

Recent Post