গিট

গিট (, ) হল একটি ডিস্ট্রিবিউটেড সংস্করণ নিয়ন্ত্রণ ("version control") পদ্ধতি যা প্রধানত প্রোগ্রামিং প্রকল্পের উৎস কোডের পরিবর্তন সংরক্ষণে ব্যবহার করা হয়। এটি প্রোগ্রামারদের মধ্যে কাজের সমন্বয় করার উদ্দেশ্যে তৈরি হলেও যেকোন ধরনের কম্পিউটার ফাইলের পরিবর্তন রক্ষায় ব্যবহার করায় কোন বাধা নেই। গিটের লক্ষ্যসমূহ হল দ্রুতগতি, তথ্যের বিশুদ্ধতা, এবং ডিস্ট্রিবিউটেড জটিল বহুমাত্রিক প্রকল্পের সমর্থন।
লিনাস টরভাল্ড্‌স লিনাক্স কার্নেল প্রোগ্রামিংয়ে সুবিধার জন্য ২০০৫ সালে গিট তৈরি শুরু করেন, এবং অন্যান্য কার্নেল ডেভেলপাররা তাকে প্রারম্ভিক সহায়তা দেন। বর্তমানে এর তত্ত্বাবধায়ক হিসেবে রয়েছেন জুনিও হামানো।
কম্পিউটারে অবস্থিত প্রতিটি গিট ডিরেক্টরি একেকটি পুরোপুরি স্বয়ংসম্পূর্ণ রিপজিটরি ("repository") বা সোর্সভাণ্ডার, এবং কোন ধরনের কেন্দ্রীয় সার্ভারের নিয়ন্ত্রণমুক্ত।
গ্নু জেনারেল পাবলিক লাইসেন্স, ২য় সংস্করণ (GPLv2) এর আওতায় ফ্রি এবং ওপেন সোর্স সফটওয়্যার হিসেবে গিট প্রকাশিত হয়।
২০০৫ সালের শুরুতে লিনাক্স কার্নেলের সোর্স কোড বিটকিপার নামক একটি বাণিজ্যিক ভার্শন কন্ট্রোল ব্যবস্থায় সংরক্ষণ করা হত। কিন্তু বিটকিপারের স্বত্বাধিকারী ল্যারি ম্যাকঅ্যাভয় দাবি করেন কার্নেল ডেভলপার অ্যান্ড্রু ট্রিজেল বিটকিপারের প্রটোকল রিভার্স-ইঞ্জিনিয়ারিং করেছেন, এবং কার্নেলের কাজে সফটওয়্যারটির বিনামূল্য ব্যবহারের অনুমতি উঠিয়ে নেন। এর ফলশ্রুতিতে ২০০৫ এর এপ্রিলে বিটকিপারকে প্রতিস্থাপন করার জন্য লিনাক্স কার্নেল-এর জনক ফিনিস নাগরিক লিনাস টরভল্ডস-এর নেতৃত্বে গিট ডেভলপ করা শুরু হয়।
টরভাল্ড‌্স যেসব বৈশিষ্ট্য আশা করছিলেন, তা তৎকালীন কোন ভার্শন কন্ট্রোল পদ্ধতিতেই উপস্থিত ছিল না। যেমন, সেসব পদ্ধতিতে সোর্স কোডে প্যাচ প্রয়োগ করতে প্রায় ৩০ সেকেন্ড সময় লাগত, উপরন্তু লিনাক্স কার্নেলের বিস্তৃত সোর্স কোডে এই সময়ের পরিমাণ আরও অণেক গুণ বেড়ে যেত। কিন্তু টরভাল্ড‌্স এক্ষেত্রে ৩ সেকেন্ডের বেশি সময় দিতে রাজি ছিলেন না। এছাড়া তিনি আরও কয়েকটি লক্ষ্য নির্ধারণ করেন:
এসব লক্ষ্য পূরণ করার মত কোন ব্যবস্থা না পেয়ে, লিনাক্স কার্নেল ২.৬.১২-rc২ সংস্করণ প্রকাশের পর টরভাল্ড‌্স নিজেই এধরনের একটি সফটওয়্যার লিখতে বসেন।
২০০৫ এর ৩ এপ্রিল গিট ডেভলপ করা শুরু হয়। টরভাল্ড‌্স ৬ তারিখে প্রকল্পটি প্রকাশ করেন। ৭ এপ্রিল গিট স্ব-আশ্রিত হয় (অর্থাৎ গিটের সোর্স কোড গিট দ্বারাই সংরক্ষণ করা শুরু হয়)। ২০০৫ এর ১৬ জুন প্রকাশিত লিনাক্স কার্নেল ২.৬.১২ ছিল গিটের ব্যবস্থাপনাধীনে মুক্তিপ্রাপ্ত প্রথম সংস্করণ।
২০০৫ এর ২৬ জুলাই টরভাল্ড‌্স গিটের তত্ত্বাবধায়নের দায়িত্ব প্রকল্পটির অন্যতম অবদানকারী জুনিও হামানোকে দিয়ে দেন। হামানো ২০০৫ সালের ২১ ডিসেম্বর গিট ১.০ সংস্করণ প্রকাশ করেন। এখনও তিনি গিটের তত্ত্বাবধায়নের দায়িত্বে রয়েছেন।
ব্রিটিশ ইংরেজি অপভাষায় গিট বলতে "বিরক্তিকর লোক" বোঝায়। টরভালড‌্স শ্লেষ্মাত্বকভাবে নামটির সম্পর্কে বলেছেন, "আমি মহা অহংকারী লোক, তাই সব প্রজেক্টের নাম নিজের নামেই দিই, প্রথমে 'লিনাক্স', এবার 'গিট'."। গিটের ম্যান পেজ বর্ণনা করে এভাবে: "দ্য স্টুপিড কনটেন্ট ট্র্যাকার"। সোর্স কোডের রিডমি ফাইল আরও বিস্তারিতভাবে বলে:
উল্লেখ্য, এখানে "global information tracker" এবং "goddamn idiotic truckload of sh*t" বাক্যদুটি সংক্ষিপ্ত রূপ "git" হতে পারে।
প্রকাশনা সংস্করণ সংখ্যা পেতে : 
git --version
প্রকাশনার তালিকা নিম্নরূপ : 
গিটের নকশার অনুপ্রেরণা ছিল বিটকিপার এবং মোনোটোন। গিট প্রথমদিকে তৈরি করা হয়েছিল নিজস্ব ফ্রন্ট-এন্ড বিহীন ভার্সন-কন্ট্রোল ইঞ্জিন হিসাবে। তবে প্রকল্পটি পরে স্বয়ংসম্পূর্ণ হয়ে উঠেছে, এবং কোন বাহ্যিক ফ্রন্ট-এন্ড ছাড়াই ব্যবহার করা যায়। টরভাল্ড‌্স ইচ্ছা করেই সংস্করণ-নিয়ন্ত্রণ প্রকল্পসমূহের প্রচলিত বিধিমালা এড়িয়ে গেছেন, ফলে গিট একটি অনন্য নকশা অর্জন করেছে।
লিনাক্স কার্নেল তৈরির অভিজ্ঞতাকে টরভাল্ড‌্স গিটে প্রয়োগ করেছেন, যা প্রকল্পটির প্রধান কিছু বৈশিষ্ট্য এবং অনন্যতার উৎস। গিটের মৌলিক কিছু বৈশিষ্ট্য হল:
নিবন্ধের সময় ব্যাবহারকারীর নাম জুড়তে : 
git config --global user.name "[your name]"
নিবন্ধের সময় ব্যাবহারকারীর ইমেইল আইডি জুড়তে : 
git config --global user.email "[your email address]"
বিশেষ নামের সাথে একটি স্থানীয় সঞ্চয়স্থান তৈরিতে : 
git init [name]
মূল সঞ্চয়স্থানের একটি প্রতিরূপ তৈরিতে : 
git clone [url]
বর্তমান ওয়ার্কস্পেসে সমস্ত ফাইলের স্থিতি জানতে :
git status
স্টেজ না করা ফাইল পরিবর্তনগুলো দেখতে :
git diff
ওয়ার্কস্পেস থেকে স্টেজে পাঠাতে :
git add [file]
স্টেজ থেকে পরিবর্তনগুলো সরাতে :
git reset [file]
স্টেজ এবং মূল সংস্করণের পরিবর্তনগুলো জানতে  :
git diff --commit
স্থানীয় সঞ্চয়স্থানে স্টেজের সমস্ত পরিবর্তন নিবন্ধন করতে : 
git commit -m "[commit message]"
স্থানীয় সঞ্চয়স্থানের  সমস্ত শাখা দেখতে :
git brunch
নতুন শাখা তৈরিতে : 
git brunch [name]
ওয়ার্কস্পেসে কোনো শাখা চেকআউট করতে  : 
git checkout [name]
কোনো শাখাকে বর্তমান শাখায় সংযোজন করতে  : 
git merge [name]
কোনো শাখাকে মুছে ফেলতে : 
git branch -d [name]
স্থানীয় সঞ্চয় ও স্টেজ থেকে ফাইল মুছে ফেলতে : 
git rm [filename]
স্থানীয় সঞ্চয় ও স্টেজ থেকে ফাইল স্থানান্তর করতে  :
git mv [filename-orig] [filename-new]
নিবন্ধ ইতিহাস দেখতে :
git log
কোনো ফাইলের নিবন্ধ ইতিহাস দেখতে : 
git log --follow [file]
শাখা গঠন ইতিহাস দেখতে : 
git log --graph --oneline --decorate --all
দুটি শাখার  মধ্যে পার্থক্য দেখতে : 
git diff [brunch1]...[brunch2]
কোনো নিবন্ধের বিস্তারিত তথ্য দেখতে 
git show [commit]
দূরবর্তী সঞ্চয় থেকে স্থানীয় সঞ্চয়ে নামিয়ে আনতে :
git pull
দূরবর্তী সঞ্চয়ে স্থানীয় সঞ্চয় পরিবর্তিনগুলো তুলতে  :
git push
স্থানীয় সঞ্চয় থেকে ওয়ার্কস্পেসে সংযোজন করতে :
git merge
দূরবর্তী সঞ্চয় থেকে স্থানীয় সঞ্চয়ে শাখাকে পুনরুদ্ধার করে কিন্তু ওয়ার্কস্পেসে সংযোজন করে না :
git fetch [branch]
স্থানীয় সঞ্চয়ে নির্দিষ্ট নিবন্ধ অব্দি সমস্ত নিবন্ধ ফিরিয়ে নিতে : 
git reset [commit]
স্টেজ এবং ওয়ার্কস্পেসে নির্দিষ্ট নিবন্ধ অব্দি সমস্ত নিবন্ধ ফিরিয়ে নিতে : 
git reset --hard [commit]
অস্থায়ীভাবে ওয়ার্কস্পেসের পরিবর্তনগুলো আড়াল করতে 
git stash
সর্বশেষ আড়াল করা ফাইলগুলোকে পুনরুদ্ধার করতে :
git stash pop
আড়াল করা ফাইল তালিকা পেতে 
git stash list
সর্বশেষ আড়াল করা ফাইলগুলোকে সরিয়ে ফেলতে :
git stash drop
গিট মূলত লিনাক্সে ডেভলপ করা হয়, তবে অধিকাংশ প্রচলিত অপারেটিং সিস্টেম সমর্থন করে।
প্রথম দিকে উইন্ডোজের জন্য তৈরি গিট প্যাকেজটি ছিল প্রকৃতপক্ষে মিনজিডব্লিউ (MinGW) এবং এমসিস২.০ (সিগউইন এর একটি ফর্ক) এর সমন্বয়ে গঠিত একটি গ্নু/লিনাক্স এমুলেশন ফ্রেমওয়ার্ক। বর্তমানে উইন্ডোজের জন্য ন্যাটিভ ৬৪- এবং ৩২-বিটের গিট প্যাকেজ সরবরাহ করা হয় (যদিও এর সঙ্গেও আগের মতই বিভিন্ন সহায়ক গ্নু প্রোগ্রাম অন্তর্ভুক্ত করা থাকে)।
জেগিট (JGit) জাভায় বাস্তবায়িত গিট লাইব্রেরি যা যেকোন জাভা অ্যাপ্লিকেশনে যুক্ত করা যায়। এটি গেরিট এবং ইগিট প্রকল্পদুটির সাহায্যে গঠিত।
গো-গিট হল বিশুদ্ধ গো ভাষায় লিখিত গিটের একটি রূপ। এটি বর্তমানে গিট রিপজিটরির এসকিউএল ইন্টারফেস হিসেবে ব্যবহার করা যায় এবং গিট কর্মপ্রণালী এনক্রিপ্ট করতে পারে।
পাইথন ২ এবং ৩ শাখার জন্য ডালউইচ নামে গিট সংস্করণ বাস্তবায়িত হয়েছে।
গিটের আনসি সি সফটওয়্যার লাইব্রেরি রূপ হিসেবে তৈরি হয়েছে লিবগিট২ (libgit2), যা একাধিক প্লাটফর্মের জন্য বিল্ড করা যায়, এবং রুবি, পাইথন, হাস্কেল সহ আরও কিছু ভাষায় ব্যবহার করার সুবিধা (binding) রয়েছে।
জেএস-গিট হচ্ছে জাভাস্ক্রিপ্টে লেখা গিটের অংশবিশেষের বাস্তবায়ন।
যেহেতু গিট একটি বিতরণকৃত সংস্করণ-নিয়ন্ত্রণ সিস্টেম, এটি বাক্সের বাইরে একটি সার্ভার হিসাবে ব্যবহার করা যেতে পারে। এতে git daemon নামে একটি অন্তর্নির্মিত কমান্ড রয়েছে যা GIT প্রোটোকলে চলমান একটি সাধারণ TCP সার্ভার শুরু করে। ডেডিকেটেড গিট এইচটিটিপি সার্ভারগুলি অ্যাক্সেস নিয়ন্ত্রণ যোগ করে, ওয়েব ইন্টারফেসের মাধ্যমে একটি গিট রিপোজিটরির বিষয়বস্তু প্রদর্শন করে এবং একাধিক সংগ্রহস্থল পরিচালনা করে (অন্যান্য বৈশিষ্ট্যগুলির মধ্যে) সহায়তা করে। ইতোমধ্যে বিদ্যমান গিট রিপোজিটরিগুলিকে ক্লোন করা যেতে পারে এবং অন্যদের দ্বারা সেন্ট্রালাইজড রেপো হিসাবে ব্যবহার করার জন্য শেয়ার করা যেতে পারে। সফ্টওয়্যার ইনস্টল করে এবং ব্যবহারকারীকে লগ ইন করার অনুমতি দিয়ে এটি দূরবর্তী শেল থেকেও অ্যাক্সেস করা যেতে পারে ।
পরিষেবা হিসাবে গিট সংগ্রহস্থলের অনেক অফার রয়েছে। সোর্স-কোড-হোস্টিং সুবিধা হল একটি ফাইল সংরক্ষণাগার এবং সফ্টওয়্যার, ডকুমেন্টেশন, ওয়েব পেজ এবং অন্যান্য কাজের সোর্স কোডের জন্য ওয়েব হোস্টিং সুবিধা , যা সর্বজনীনভাবে বা ব্যক্তিগতভাবে অ্যাক্সেসযোগ্য। সবচেয়ে জনপ্রিয় হল গিটহাব (সর্বাধিক জনপ্রিয়), সোর্সফার্জ (অন্যতম প্রাচীন) , বিটবাকেট এবং GitLab ।
এক্লিপ্স ফাউন্ডেশন ২০১৪ সালের বার্ষিক গণজরিপের প্রতিবেদনে প্রকাশ করে যে, জরিপে অংশগ্রহণকারী পেশাদার প্রোগ্রামারদের মধ্যে সর্বাধিক ৪২.৯% গিটের ব্যবহারকারী, অর্থাৎ গিট সর্বাধিক ব্যবহৃত সংস্করণ-নিয়ন্ত্রণ ব্যবস্থা। মুক্ত-সোর্স ডিরেক্টরি ওপেন হাবও অনুরূপ প্রতিবেদন প্রকাশ করেছে। স্ট্যাক ওভারফ্লো ২০১৫ সালে থেকে তাদের বার্ষিক জরিপে ভার্সন-কন্ট্রোল সফটওয়্যার অন্তর্ভুক্ত করছে। গিট এক্ষেত্রে নিয়মিত অগ্রগণ্য স্থানে রয়েছে, এবং ২০১৮ তে ৮৭.২% এর মত গুরুতর সমর্থনও পেয়েছে। যুক্তরাজ্যের আইটি পেশার চাকরি সেবার ওয়েবসাইট itjobswatch.co.uk এর প্রতিবেদনে দেখা যায়, ২০১৬ সালে যুক্তরাজ্যে প্রোগ্রামিং পেশায় স্থায়ী চাকুরির ২৯.২৭% বিজ্ঞপ্তিতে গিট অভিজ্ঞতা চাওয়া হয়েছে এবং তার নিকটতম প্রতিদ্বন্দ্বী ছিল ১২.১৭% বিজ্ঞপ্তিতে মাইক্রোসফট টীম ফাউন্ডেশন সার্ভার।