আপনি যদি একজন লিনাক্স ব্যবহারকারী হন, আপনি সম্ভবত একটি নতুন প্রোগ্রাম ডাউনলোড করার চেষ্টা করার সময় বা সিভিএস বা সাবভারশনের মতো সংস্করণ নিয়ন্ত্রণ সিস্টেমগুলি দেখার সময় সম্ভবত কোনও সময়ে গিট জুড়ে এসেছেন। Git হল একটি রিভিশন কন্ট্রোল সিস্টেম যা লিনাক্স কার্নেলের বিখ্যাত Linus Torvalds দ্বারা তৈরি করা হয়েছে, বিদ্যমান সমাধানগুলির সাথে সন্তুষ্টির অভাবের কারণে। নকশার প্রধান জোর ছিল গতি, বা আরও নির্দিষ্টভাবে, দক্ষতার উপর। গিট পূর্ববর্তী সিস্টেমের অনেক ত্রুটির সমাধান করে এবং এটি অনেক কম সময়ে করে। আপনি যদি গিট শিখতে চান, এই শিক্ষানবিস গাইড আপনাকে শুরু করতে সাহায্য করবে।
গিট কি করে
ধরা যাক আপনি একজন গ্রাহকের জন্য একটি ওয়েবসাইট তৈরির কাজ করছেন। তারা বলে যে তারা কি চায়, আপনি এটি ডিজাইন করেন, তারা এটি পর্যালোচনা করে এবং সংশোধন করে ইত্যাদি। গ্রাহকের কাছ থেকে প্রতিটি সংশোধনের সাথে সাইটটি পরিবর্তিত হয় এবং বৃদ্ধি পায়। পরে, গ্রাহক বলতে পারেন, "গত সেপ্টেম্বরে যেভাবে দেখাচ্ছিল আমার কাছে এটি আরও ভালো লেগেছে।" স্বাভাবিক পরিস্থিতিতে, আপনি একটি সমস্যা আছে. আপনার কাছে সেই সময়ের সমস্ত ফাইল এবং ডেটা নাও থাকতে পারে, এবং আপনার কোড এতটাই পরিবর্তিত হতে পারে যে ফিরে আসা কঠিন বা অসম্ভব।
একটি রিভিশন কন্ট্রোল সিস্টেমের বিষয় হল উপরের অনুচ্ছেদে প্রায় সমস্ত সমস্যার সমাধান করা। আপনি আপনার কোড এবং ফাইলের প্রতিটি পরিবর্তন ট্র্যাক করতে পারেন এবং যে কোনো সময়ে যেখানে জিনিসগুলি ছিল সেখানে ফিরে যেতে পারেন৷
৷কিভাবে গিট কাজ করে
প্রতিটি প্রকল্পের ডিরেক্টরি তার নিজস্ব গিট সংগ্রহস্থল। আপনি সেই ডিরেক্টরিতে সেই প্রকল্পের জন্য আপনার সমস্ত ফাইল রাখুন এবং পর্যায়ক্রমে গিটকে ফাইলগুলির বর্তমান অবস্থার সাথে তার তথ্য আপডেট করতে বলুন। গিটকে স্টেট রেকর্ড করতে বলার প্রক্রিয়াটি হল একটি commit
. প্রতিবার যখন আপনি প্রতিশ্রুতি দেন (যা প্রায়শই হওয়া উচিত), গিট সমস্ত ফাইলগুলিকে দেখে নেয় যা ট্র্যাক করার নির্দেশ দেওয়া হয়েছে এবং সেই ফাইলগুলির পার্থক্যগুলি (সকল নতুন ফাইল নয়) ".git" ডিরেক্টরিতে সংরক্ষণ করে৷ প্রতিটি প্রতিশ্রুতি আপনার প্রকল্পের বিকাশের জন্য একটি নতুন সংরক্ষণ পয়েন্ট হয়ে ওঠে।
ঐচ্ছিকভাবে, আপনি আপনার স্থানীয় গিট রিপোজিটরিকে বাইরের হোস্টে ঠেলে দিতে পারেন, যেমন গিটহাব বা আপনার নিজের গিট সার্ভার। এটি একটি প্রকল্পে একাধিক অবদানকারীকে তাদের স্থানীয় রেপোতে ঘন ঘন, দ্রুত প্রতিশ্রুতি দিতে সক্ষম হতে দেয়, তারপর সেই সমস্ত স্থানীয় প্রতিশ্রুতিগুলিকে অনলাইন সংগ্রহস্থলে একক আপডেটে বান্ডিল করে।
এটি এমন একটি জিনিস যা গিটকে অন্য কিছু সংস্করণ কন্ট্রোল সিস্টেম (VCS) এর চেয়ে দ্রুত ব্যবহার করে:আপনি প্রতিটির জন্য একটি সার্ভারে আপলোড করার সময় এবং ব্যান্ডউইথ নষ্ট না করে আপনার স্থানীয় সংগ্রহস্থলে ঘন ঘন প্রতিশ্রুতি দিতে পারেন৷
গিট পাওয়া
বেশিরভাগ লিনাক্স ডিস্ট্রো গিট প্রিইন্সটল করে আসে। যদি আপনার সিস্টেম এটির সাথে না আসে তবে আপনি সহজেই এটি আপনার সফ্টওয়্যার সেন্টার বা প্যাকেজ ম্যানেজার থেকে ইনস্টল করতে পারেন, কারণ এটি বেশিরভাগ সংগ্রহস্থলে সহজেই উপলব্ধ।
আপনি এটি টার্মিনালে ইনস্টল করতে পারেন:
# Debian/Ubuntu sudo apt install git-all # Fedora sudo dnf install git-all
আপনি যদি অন্য প্ল্যাটফর্মে থাকেন বা অন্যথায় এই জাতীয় সংগ্রহস্থলগুলি ব্যবহার করতে না পারেন তবে আপনি এখানে প্যাকেজগুলি ডাউনলোড এবং ম্যানুয়ালি ইনস্টল করতে পারেন৷
Git ব্যবহার করা
একটি স্থানীয় গিট সংগ্রহস্থল তৈরির প্রক্রিয়া দ্রুত এবং সহজ। প্রথমে, একটি ডিরেক্টরি তৈরি করুন যা আপনি আপনার প্রকল্পের জন্য ব্যবহার করতে চান এবং আপনার টার্মিনালটি সেই অবস্থানে খুলুন৷
৷cd /my-git-directory
কমান্ড দিয়ে একটি গিট রেপো শুরু করুন:
git init
এটি আপনার সংগ্রহস্থলের তথ্য ধরে রাখতে একটি ".git" ডিরেক্টরি (দর্শন থেকে লুকানো) তৈরি করবে। সম্ভবত, আপনি কিছু ফাইল যোগ করা শুরু করতে চাইবেন। আমরা একটি সাধারণ README ফাইল তৈরি করে শুরু করব, এটি দেখার জন্য সংগ্রহস্থলের ফাইলগুলির তালিকায় যুক্ত করব, তারপরে আমাদের ফাইলটি সংগ্রহস্থলে জমা দেব৷
#Insert some text into a new file echo "TODO: Create documentation" > README.txt #Now tell Git to keep track of this file's changes #This only needs to be done once per file (more #on that in a moment) git add README.txt #And now save state to Git repository git commit README.txt
আপনাকে একটি টেক্সট এডিটর স্ক্রিনে নিয়ে আসা হবে (ঠিক কোন টেক্সট এডিটর আপনার ডিস্ট্রো এবং কনফিগারেশনের উপর নির্ভর করে) যেখানে আপনাকে এই প্রতিশ্রুতি সম্পর্কে কোনও নোট লিখতে হবে। এগুলি সাধারণত শেষ কমিট থেকে সংঘটিত পরিবর্তনগুলির সংক্ষিপ্ত সারাংশ। একবার আপনি টেক্সট এডিটর সংরক্ষণ এবং প্রস্থান করলে, প্রতিশ্রুতি সফলভাবে সম্পন্ন করা উচিত।
যদি উপরের সময়, গিট একটি ত্রুটি ছুড়ে দেয় যে এটি আপনাকে চিনতে পারে না, আপনাকে এটি বলতে হবে আপনি কে। এটি প্রবেশ করার মতোই সহজ:
git config --global user.name "Your_Username" git config --global user.email "[email protected]"
আমরা মূলত সেই ফাইলের বর্তমান অবস্থার একটি স্ন্যাপশট তৈরি করেছি। যেকোনও পরিবর্তন (আপনি যে প্রতিশ্রুতি দেন) তার উপরে সংরক্ষিত হবে।
উপরের উদাহরণের মতো প্রতিটি ফাইল পৃথকভাবে যোগ করা এবং কমিট করা ক্লান্তিকর হতে পারে। এর প্রতিকারের জন্য, আপনি পরিবর্তে বর্তমান ডিরেক্টরিতে সমস্ত ফাইল যোগ করতে পারেন
#Note the trailing "." git add .নোট করুন
আপনি
এর সাথে একসাথে সমস্ত পরিচিত পরিবর্তিত ফাইলগুলি কমিট করতে পারেন৷git commit -a
কিছু অন্যান্য সহজ গিট কমান্ড বিকল্প অন্তর্ভুক্ত:
#Make a full clone of existing repository, such as from the website of a software project git clone (URL, ie git://github.com/github/linux-2.6.git) #Move/rename a file. This spares you from having to remove and re-add the file #if it had been moved by bash git mv (source) (destination) #Delete a file and remove from Git repo git rm (target) #See branches in this repository git branch #Create a new branch of the Git tree git branch (new branch name, ie "experimental") #Switch from one branch to another git checkout (branch name, ie "experimental") #Merge branch (branch) into current tree git merge (branch)
এটি, অবশ্যই, গিট যা করতে পারে তার শুরু মাত্র। একবার আপনি GIt আয়ত্ত করার পরে, আপনি Github এর সাথে শুরু করতে পারেন এবং কীভাবে আপনার পুল অনুরোধে স্ক্রিনশট এবং অ্যানিমেশন যোগ করতে হয় তা শিখতে পারেন৷