আপনি যেকোনো বিষয়ে মাস্টার হওয়ার আগে, আপনাকে প্রথমে বেসিক্স বুঝতে হবে। এটি বিশ্বের যেকোনো বিষয়ে প্রযোজ্য, Git-ও ব্যতিক্রম নয়। যদিও অন-দ্য-জব শিখার বিকল্প নেই, Git টার্মিনোলজি আগে শিখলে আপনি এই টুল ব্যবহার শুরু করলে গাইড পাবেন।
এই নিবন্ধে, আপনি Git টার্মিনোলজির একটি جامع গ্লসারি পাবেন যা আপনার Git-এ প্রফিশিয়েন্ট হওয়ার যাত্রায় সাহায্য করবে। এটিকে আপনার Git টার্মিনোলজি চিট শিট মনে করুন যা Git-এ কাজ করার স্ট্যান্ডার্ড টার্ম বুঝতে সাহায্য করবে।
Git কী?
Git একটি ওপেন সোর্স ডিস্ট্রিবিউটেড ভার্সন কন্ট্রোল সিস্টেম যা ফ্রি ব্যবহার করা যায়। এটি ছোট থেকে বড় প্রজেক্ট হ্যান্ডল করতে পারে, যেকোনো সেট ফাইলে পরিবর্তন ট্র্যাক করা সহিত। Git-এর প্রাইমারি ফাংশন হলো সফটওয়্যার ডেভেলপমেন্টের সময় সোর্স কোডের জন্য সহযোগিতা করে প্রোগ্রামারদের মধ্যে সমন্বয় করা।
লাইনাস টরভাল্ডস ২০০৫ সালে Git তৈরি کردند। এখন, এটি বিশ্বব্যাপী সবচেয়ে ব্যাপকভাবে ব্যবহৃত সেন্ট্রালাইজড ভার্সন কন্ট্রোল সিস্টেম। Git ডেটা ইন্টিগ্রিটি, গতি এবং ডিস্ট্রিবিউটেড নন-লিনিয়ার ওয়ার্কফ্লো সাপোর্ট করার ক্ষমতা প্রাধান্য দিয়ে সোর্স প্রজেক্টের জন্য একটি এসেনশিয়াল টুল হয়েছে।
Git টার্মিনোলজি কে ব্যবহার করে?
কম্পিউটার প্রোগ্রামার, সফটওয়্যার ইঞ্জিনিয়ার এবং সফটওয়্যার ডেভেলপার একইভাবে তাদের দিনদিনের কাজে Git টার্মিনোলজি ব্যবহার করে। অন্যান্য টেক প্রফেশনাল, যেমন ডেটা আর্কিটেক্ট, তাদের কিছু টাস্ক Git টুল ব্যবহার করে এক্সিকিউট করে, তাই তারা Git টার্মস سے পরিচিত।
Git টার্মের তালিকা: প্রতিটি কম্পিউটার প্রোগ্রামার যেগুলো জানা উচিত
- Bare repository
- Branch
- Cache
- Checkout
- Commit
- Commit object
- Detached HEAD
- Fetch
- Git repository
- Git reset
- HEAD
- Hook
- Index
- Master
- Pull request
- Git Push
- Remote repository
- Shallow repository
- Topic branch
- Upstream branch
Git টার্মিনোলজি গ্লসারি: ৫টি সাধারণ Git টার্ম
অনেক ডেভেলপার এবং কম্পিউটার প্রোগ্রামার Git ব্যবহার করে কারণ এটি একটি মূল্যবান টুল যা ভার্সন কন্ট্রোলের সুবিধা দেয়। আসুন কিছু সাধারণ Git টার্ম, তাদের ডেফিনিশন এবং কম্পিউটার প্রোগ্রামারদের কেন সেগুলো জানা দরকার তা দেখি।
Branch
একটি ব্রাঞ্চ হলো মেন ওয়ার্কিং প্রজেক্টের অন্য একটি রিপোজিটরি ভার্সন। অধিকাংশ বর্তমান ভার্সন কন্ট্রোল সিস্টেম এটিকে একটি স্ট্যান্ডার্ড ফিচার হিসেবে অন্তর্ভুক্ত করে। একটি Git প্রজেক্টে একাধিক ব্রাঞ্চ থাকতে পারে, যেমন অরিজিন ব্রাঞ্চ বা টার্গেট ব্রাঞ্চ। Git ব্রাঞ্চের টাইপের উপর নির্ভর করে, আপনি একটি ব্রাঞ্চ রিনেম, লিস্ট, ডিলিট বা অন্যান্য টাস্ক পারফর্ম করতে পারেন।
কেন একটি কম্পিউটার প্রোগ্রামারকে ব্রাঞ্চ সম্পর্কে জানা দরকার
একটি কম্পিউটার প্রোগ্রামারকে Git ব্রাঞ্চ সম্পর্কে জানা দরকার কারণ এটি অরিজিনাল সোর্স কোড থেকে আউটগোয়িং, অধিক নমনীয়ভাবে কাজ করার সুযোগ দেয়। প্রোগ্রামাররা নতুন ফিচার যোগ করা বা বাগ সমাধান করার মতো পরিবর্তন ইনকর্পোরেট করার জন্য একটি নতুন ব্রাঞ্চ তৈরি করতে পারে। একটি Git ব্রাঞ্চ আপনার পরিবর্তন들의 স্ন্যাপশটের দিকে ইফেক্টিভলি পয়েন্ট করে।
Checkout
Checkout ফাংশন ফাইল, কমিট এবং ব্রাঞ্চের বিভিন্ন ভার্সনের মধ্যে সুইচ করতে দেয়। আপনি Git checkout কমান্ড এক্সিকিউট করে ব্রাঞ্চ পরিবর্তনগুলো প্রজেক্ট हिस্টরিতে সেভ করতে পারেন। এটি Git ব্রাঞ্চের পরিবর্তনগুলো ওয়ার্কিং ডিরেক্টরির সাথে অ্যালাইন করে।
কেন একটি কম্পিউটার প্রোগ্রামারকে Checkout সম্পর্কে জানা দরকার
একটি কম্পিউটার প্রোগ্রামার হিসেবে, আপনাকে checkout সম্পর্কে জানা দরকার কারণ এটি আপনাকে প্রজেক্ট हिस্টরি এবং ওয়ার্কিং ডিরেক্টরি দক্ষতার সাথে আপডেট করতে সাহায্য করে। আপনি এটি ব্যবহার করতে পারেন ওয়ার্কিং ডিরেক্টরিতে ডিফল্ট ব্রাঞ্চের ভার্সন ম্যাচ করতে এবং Git-কে নতুন রিভিশন ট্র্যাক করতে বলতে। আপনি ফাইল রিস্টোর করার জন্যও এটি ব্যবহার করতে পারেন।
Master
সকল রিপোজিটরির একটি প্রাইমারি ব্রাঞ্চ বা ডিফল্ট ব্রাঞ্চ থাকে যাকে master বলা হয়। আপনি একটি Git রিপোজিটরি তৈরি করলে, master সবচেয়ে সক্রিয় এবং ডিফল্ট ডেভেলপমেন্ট ব্রাঞ্চ। Master ব্রাঞ্চে সব কমিটেড এবং স্বীকৃত পরিবর্তন থাকা উচিত। নতুন ব্রাঞ্চ তৈরি করার সময় master ব্রাঞ্চ থেকে সরাসরি কাজ করা সম্ভব।
কেন একটি কম্পিউটার প্রোগ্রামারকে Master সম্পর্কে জানা দরকার
একটি কম্পিউটার প্রোগ্রামারকে master ব্রাঞ্চ সম্পর্কে জানা দরকার কারণ এটি সেখানে সব পরিবর্তন চূড়ান্তভাবে মার্জ হয়। এটি একটি প্রোগ্রামিং কলাবোরেশনের আউটপুটের সেরা রেফারেন্স। আপনি এটিকে আপনার প্রজেক্টের অফিশিয়াল ওয়ার্কিং ভার্সন হিসেবে চিন্তা করতে পারেন।
Git Repository
একটি রিপোজিটরি সকল প্রজেক্ট-রিলেটেড ডেটা ধারণ করে। এটি একটি ডিরেক্টরি যা সকল ফাইল, ফোল্ডার এবং অন্যান্য তথ্য ধারণ করে। রিপোজিটরি শেয়ার এবং কপি করা যেতে পারে। ভিন্ন Git রিপোজিটরি شامل করে ফর্কড রিপোজিটরি, সার্ভার-সাইড রিপোজিটরি এবং সেন্ট্রাল রিপোজিটরি।
কেন একটি কম্পিউটার প্রোগ্রামারকে Git Repository সম্পর্কে জানা উচিত
একটি কম্পিউটার প্রোগ্রামারকে Git রিপোজিটরি সম্পর্কে জানা উচিত কারণ এতে প্রজেক্ট ফাইল এবং ডিরেক্টরির সকল ভার্সন থাকে। এটি ফাইল এবং ফোল্ডার সম্পর্কিত সকল ডেরাইভড ডেটা এবং মেটাডেটা ট্র্যাক রাখে।
Git Push
"Push" টার্মটি একটি লোকাল রিপোজিটরি থেকে একটি রিমোট রিপোজিটরিতে কন্টেন্ট আপলোড করা বোঝায়। পাশিং-এর প্রক্রিয়া করেন্ট ব্রাঞ্চের কমিটের সাথে একটি রিমোট ব্রাঞ্চ আপডেট করে। এই Git কমান্ড বাস্তবায়ন করার সময় সতর্কতা অবলম্বন করুন, কারণ এটি পরিবর্তন ওভাররাইট করতে পারে।
কেন একটি কম্পিউটার প্রোগ্রামারকে Push সম্পর্কে জানা দরকার
একটি কম্পিউটার প্রোগ্রামারকে Git push সম্পর্কে জানা দরকার কারণ এটি লোকাল রিপোজিটরিতে করা পরিবর্তনগুলো দ্রুত রিমোট রিপোজিটরি আপডেট করে। শুধু একটি পাশ কমান্ড দরকার, এবং রিমোট সার্ভারের রিপোজিটরিগুলো আপলোড হওয়া পরিবর্তন পাবে। Git push একটি প্রজেক্টের সকল অন্যান্য কলাবোরেটরকে পরিবর্তন ডাউনলোড এবং ট্র্যাক করতে সক্ষম করে।
Git টার্মিনোলজি চিট শিট: ৫টি অ্যাডভান্সড Git টার্ম
Git টার্মিনোলজিতে মাস্টার হওয়া কম্পিউটার প্রোগ্রামাররা প্রায়শই GitHub প্ল্যাটফর্মের সাথে কাজ করে।
সাধারণ Git টার্মের জ্ঞান আপনাকে Git-এর জগতে পা রাখতে দেয়। যাইহোক, অ্যাডভান্সড Git টার্মিনোলজির জ্ঞান আপনাকে টুলটি দ্রুত শিখতে এজ দিতে পারে। নিচে কিছু অ্যাডভান্সড Git টার্ম, টার্মের সংক্ষিপ্ত বিবরণ এবং কেন একটি কম্পিউটার প্রোগ্রামারকে সেগুলো সম্পর্কে জানা উচিত তা দেওয়া হলো।
Commit
একটি কমিট হলো একটি অফিশিয়াল প্রজেক্টের ভার্সনের একটি স্ন্যাপশট একটি নির্দিষ্ট সময়ে যা Git রিপোজিটরিতে Vĩnh viễnভাবে রাখা হয়। এটি লেখকের নাম এবং ইমেইল অ্যাড্রেস এবং কমিটের তারিখ ও সময় ক্যাপচার করে। Git প্রায়শই "commit" টার্মটি অন্য রিভিশন কন্ট্রোল সিস্টেম "revision" বা "version" ব্যবহার করে সেইভাবে ব্যবহার করে। এটি "commit object"-এর একটি বিকল্প টার্মও।
কেন একটি কম্পিউটার প্রোগ্রামারকে Commit সম্পর্কে জানা উচিত
কম্পিউটার প্রোগ্রামারদের কমিট সম্পর্কে জানা উচিত কারণ Git ভার্সন কন্ট্রোল সিস্টেম মূলত কমিটের ওপর নির্ভর করে। Git commit ব্যবহার করলে কোডের টোটাল রিওয়ার্ক থেকে বাঁচা যায়। উদাহরণস্বরূপ, আপনি কোড মডিফাই করলে এবং পরিবর্তনটি আপনার কাজ ওভাররাইট করলে, আপনি শুধু একটি কমিট বা আপনার কাজের একটি ছোট অংশ হারাতে পারেন।
HEAD
HEAD, যাকে Git HEAD ও বলা হয়, হলো করেন্ট ব্রাঞ্চ যা আপনি দেখছেন। একটি রিপোজিটরিতে একাধিক heads থাকে, কিন্তু শুধু একটি HEAD ব্রাঞ্চ থাকে। সেটি বর্তমানে সক্রিয় ব্রাঞ্চের HEAD (uppercase)। ক্যাপিটালাইজেশন тут मैटर করে কারণ heads (lowercase) उन ব্রাঞ্চকে রেফার করে যেগুলো আপনি বর্তমানে দেখছেন না।
কেন একটি কম্পিউটার প্রোগ্রামারকে HEAD সম্পর্কে জানা উচিত
একটি কম্পিউটার প্রোগ্রামার অবশ্যই HEAD সম্পর্কে জানা উচিত কারণ এটি একটি ব্রাঞ্চ বা কমিটের ভার্সন হিস্ট্রি ট্র্যাক করতে ব্যবহৃত হয়। HEAD শিখতে কিছু ニュアン্স আছে। উদাহরণস্বরূপ, একটি কম্পিউটার প্রোগ্রামারকে জানা উচিত যে একটি detached HEAD আর করেন্ট ব্রাঞ্চ দেখতে বোঝায় না বরং করেন্ট কমিট।
Pull Request
যাকে Git pull ও বলা হয়, "pull" টার্মটি একটি ব্রাঞ্চ ফেচ এবং মার্জ করা বোঝায়। আপনি পুল রিকোয়েস্ট এক্সটার্নাল রিপোজিটরিতে পাঠান যাতে জমা করা পরিবর্তনগুলো ইভ্যালুয়েট করা হয় এবং প্রজেক্টের মেন রিপোজিটরিতে অন্তর্ভুক্ত করা হয়। প্রথমে, রিপোজিটরি মেইনটেইনাররা পরিবর্তন들의 সিকোয়েন্স রিভিউ করে এবং 받아들െയোগ্য হলে আপস্ট্রিম মার্জ করে। তারপর, সে পরিবর্তনগুলো master ব্রাঞ্চে যোগ করে।
কেন একটি কম্পিউটার প্রোগ্রামারকে Pull Request সম্পর্কে জানা দরকার
একটি কম্পিউটার প্রোগ্রামারের জন্য, পুল রিকোয়েস্ট ভিতাল কারণ এগুলো নিশ্চিত করে যে কোড আপস্ট্রিম রিপোজিটরিতে বা আপনার অরিজিনাল রিপোজিটরিতে মার্জ করার আগে কোয়ালিটি-চেক করা হয়েছে। পুল রিকোয়েস্ট ছাড়া, একটি কোডবেস দ্রুত ক্লাটার্ড এবং অস্পষ্ট হতে পারে। প্রতিটি প্রোগ্রামারের প্রোগ্রামিং-এ আলাদা পদ্ধতি একটি কনফিউজিং রিপোজিটরি তৈরি করবে বিভিন্ন কোড স্ট্যান্ডার্ডের সাথে।
Remote Repository
একটি রিমোট রিপোজিটরি অন্য একটি রিপোজিটরি থেকে একই প্রজেক্ট ট্র্যাক করে। আপনার অফিশিয়াল প্রজেক্টের ভার্সন যা ইন্টারনেট বা নেটওয়ার্কে হোস্ট করা থাকে সেগুলো রিমোট রিপোজিটরি উদাহরণ। আপনার রিপোজিটরি লেখকদের দেওয়া এক্সেসের উপর নির্ভর করে আপনার এইগুলোর রিড-অনলি বা রিড/রাইট এক্সেস থাকতে পারে।
কেন একটি কম্পিউটার প্রোগ্রামারকে Remote Repository সম্পর্কে জানা উচিত
একটি কম্পিউটার প্রোগ্রামার হিসেবে, আপনাকে রিমোট রিপোজিটরি সম্পর্কে জানা উচিত কারণ আপনি যেকোনো Git প্রজেক্টে কলাবোরেট করতে পারবেন। রিমোট রিপোজিটরি সম্পর্কে শিখতে বলতে পারবে সেটি কীভাবে ম্যানেজ করতে হয়। আপনাকে পুশ এবং পুল রিকোয়েস্ট অ্যাপ্লাই করতে হবে, আপনি অন্যান্য রিপোজিটরির সাথে পরিবর্তন অ্যালাইন করার সময়।
Shallow Repository
একটি শ্যালো রিপোজিটরি হলো একটি অসম্পূর্ণ ইতিহাস সহ রিপোজিটরি। কারণ Git দেখাতে পারে যে কিছু কমিটের প্যারেন্ট নেই এমনকি যদি একটি কমিট অবজেক্ট আপস্ট্রিমে রিয়েল হিস্ট্রির বড় রেকর্ড দেখায়। এই টাইপের রিপোজিটরি হ্যান্ডি হতে পারে যখন আপনি প্রধানত একটি প্রজেক্টের সাম্প্রতিক ইতিহাসে আগ্রহী।
কেন একটি কম্পিউটার প্রোগ্রামারকে Shallow Repositories সম্পর্কে জানা উচিত
আপনি যদি একটি কম্পিউটার প্রোগ্রামার হন, তবে আপনাকে শ্যালো রিপোজিটরি সম্পর্কে জানা উচিত যদি আপনি একটি পুরো আপস্ট্রিম রিপোজিটরি রাখার জন্য ব্যান্ডউইথ বা স্টোরেজ খরচ বাঁচাতে চান। এটি আপনাকে লং ভার্সন হিস্ট্রি melalui যাওয়ার সময় বাঁচাতে সাহায্য করে।
"Career Karma আমার জীবনে ঢুকেছিল যখন আমার সেটি সবচেয়ে বেশি দরকার ছিল এবং দ্রুত একটি বুটক্যাম্পের সাথে মিলিয়ে দিয়েছিল। গ্র্যাজুয়েট হওয়ার দুই মাস পর আমি আমার স্বপ্নের চাকরি পেয়েছিলাম যা আমার মূল্যবোধ এবং লক্ষ্যের সাথে মিলে যেত!"
— ভেনাস, সফটওয়্যার ইঞ্জিনিয়ার, রকবট
২০২২ সালে Git টার্মিনোলজি কীভাবে শিখব?
আপনি Git কোর্স, ট্রেনিং এবং অনলাইন রিসোর্সের মাধ্যমে Git টার্মিনোলজি শিখতে পারেন। আপনি সেরা Git বুটক্যাম্পগুলোতে এনরোল করতে পারেন, যা কেবল বেসিক Git টার্ম না শিখাবে বরং Git প্রজেক্টে জড়িত হওয়ার সুযোগ দেবে। কোডিং বুটক্যাম্পের মাধ্যমে শিখতে আপনার কোডিং স্কিল উন্নত হবে এবং আপনাকে একটি চমৎকার ক্যারিয়ারর পথে রাখবে।
Git FAQ
Git vs GitHub কী?
Git হলো একটি ভার্সন কন্ট্রোল সিস্টেম যা আপনাকে আপনার সোর্্স কোড হিস্টরি ম্যানেজ এবং মনিটর করতে দেয়। GitHub হলো একটি সার্ভিস যা আপনাকে ক্লাউডে Git রিপোজিটরি ম্যানেজ করতে সাহায্য করে। আপনার Git-ভিত্তিক ওপেন সোর্স প্রজেক্ট থাকলে, GitHub আপনাকে সেগুলো ভালোভাবে ম্যানেজ করতে সক্ষম করে।
Git শিখতে কত সময় লাগবে?
আপনি যদি বিনীত হন, তবে Git শিখতে এক সপ্তাহ বা অধিক সময় লাগতে পারে, প্রাথমিক কারণ আপনাকে Git টার্মিনোলজি, কনসেপ্ট এবং প্র্যাক্টিক্যাল এক্সিকিউশন শিখতে হবে। যাইহোক, অভিজ্ঞ প্রোগ্রামাররা Git-এর বেসিক ২০ মিনিটে মাস্টার করতে পারেন।
Git কি একটি প্রোগ্রামিং ভাষা?
না, এটি নয়। Git হলো একটি ভার্সন কন্ট্রোল সিস্টেম যা প্রোগ্রামারদের যেকোনো সেট ফাইলে পরিবর্তন ট্র্যাক করতে দেয়। এটি সফটওয়্যার ডেভেলপমেন্টের সময় সোর্স কোড প্রডিউস করার সময় প্রোগ্রামারদের মধ্যে কলাবোরেশন সমন্বয় করতে সাহায্য করে।
Git কোন প্রোগ্রামিং ভাষায় তৈরি?
Git-এর কোডের প্রায় ৫০ শতাংশ C-তে। Git-এ ব্যবহৃত অন্যান্য প্রোগ্রামিং ভাষা شامل Python, Perl, C++, Java এবং TCL।