গিটের মধ্যে প্রতিটি ফাইলের একটি সম্পূর্ণ অনুলিপি প্রতিশ্রুতিবদ্ধ করার অন্তর্ভুক্ত নেই, ব্যতীত, গিট রেপোতে ইতিমধ্যে উপস্থিত সামগ্রীর জন্য, স্ন্যাপশটটি অনুলিপি না করে কেবল কথিত সামগ্রীতে নির্দেশ করবে।
এর অর্থ হ'ল একই বিষয়বস্তুযুক্ত বেশ কয়েকটি ফাইল কেবল একবারে সঞ্চয় করা হয়।
সুতরাং একটি স্ন্যাপশট মূলত একটি প্রতিশ্রুতিবদ্ধ, ডিরেক্টরি কাঠামোর সামগ্রীর উল্লেখ করে ।
কিছু ভাল উল্লেখ রয়েছে:
গিটকে আপনি গিট কমিট কমান্ডের সাহায্যে আপনার প্রকল্পের একটি স্ন্যাপশট সংরক্ষণ করতে চান এবং এটি আপনার প্রকল্পের সমস্ত ফাইলের বিন্দুটি কেমন দেখাবে তার ম্যানিফেস্টটি রেকর্ড করে
ল্যাব 12 পূর্ববর্তী স্ন্যাপশটগুলি কীভাবে পাবেন তা চিত্রিত করে
Progit বই একটি স্ন্যাপশট আরো ব্যাপক বিবরণ রয়েছে:
গিট এবং অন্য কোনও ভিসিএস (সাবভারশন এবং অন্তর্ভুক্ত বন্ধুরা) এর মধ্যে প্রধান পার্থক্য হ'ল গিট তার ডেটা সম্পর্কে যেভাবে চিন্তা করে।
ধারণামূলকভাবে, বেশিরভাগ অন্যান্য সিস্টেম ফাইল-ভিত্তিক পরিবর্তনের একটি তালিকা হিসাবে তথ্য সংরক্ষণ করে। এই সিস্টেমগুলি (সিভিএস, সাবভারশন, পারফোর্স, বাজার এবং আরও অনেক কিছু) তারা যে ফাইলগুলি ফাইলের সেট হিসাবে রাখে এবং সময়ের সাথে সাথে প্রতিটি ফাইলে পরিবর্তিত হয় সেগুলি চিন্তা করে

গিট তার ডেটাগুলি এভাবে চিন্তা করে না বা সঞ্চয় করে না। পরিবর্তে, গিট তার ডেটাটি আরও একটি মিনি ফাইল সিস্টেমের স্ন্যাপশটের সেটের মতোই ভাবেন।
প্রতিবার আপনি প্রতিশ্রুতিবদ্ধ বা গিটে আপনার প্রকল্পের অবস্থা সংরক্ষণ করুন, এটি মূলত আপনার সমস্ত ফাইলগুলি সেই মুহুর্তের মতো দেখতে একটি চিত্র নেয় এবং সেই স্ন্যাপশটের একটি রেফারেন্স সঞ্চয় করে।
দক্ষ হওয়ার জন্য, যদি ফাইলগুলি পরিবর্তন না হয়, গিট ফাইলটি পুনরায় সংরক্ষণ করে না - এটি ইতিমধ্যে সঞ্চিত পূর্ববর্তী অভিন্ন ফাইলের লিঙ্ক।
গিট তার ডেটা সম্পর্কে আরও নীচের মত চিন্তা করে:

এটি গিট এবং অন্যান্য সমস্ত ভিসিএসের মধ্যে একটি গুরুত্বপূর্ণ পার্থক্য। এটি গিট সংস্করণ নিয়ন্ত্রণের প্রায় প্রতিটি ক্ষেত্রে পুনর্বিবেচনা করে যা বেশিরভাগ অন্যান্য সিস্টেমগুলি পূর্ববর্তী প্রজন্ম থেকে অনুলিপি করে। এটি গিটকে কেবল একটি ভিসিএসের পরিবর্তে কিছু অবিশ্বাস্যরকম শক্তিশালী সরঞ্জামগুলির সাথে একটি মিনি ফাইল সিস্টেমের মতো করে তোলে।
জান হুডেক এই গুরুত্বপূর্ণ মন্তব্যটি যোগ করেছেন :
যদিও এটি ধারণাগত স্তরে সত্য এবং গুরুত্বপূর্ণ, তবে এটি স্টোরেজ স্তরে সত্য নয়।
গিট স্টোরেজের জন্য ডেল্টাস ব্যবহার করে ।
কেবল তা-ই নয়, এটি অন্য যে কোনও সিস্টেমের চেয়ে এটিতে আরও দক্ষ। কারণ এটি প্রতি-ফাইলের ইতিহাস রাখে না, যখন এটি ডেল্টা সংকোচন করতে চায়, এটি প্রতিটি ব্লব নেয়, এমন কয়েকটি ব্লব নির্বাচন করে যা সম্ভবত একই রকম হয় (হিউরিস্টিক্স ব্যবহার করে যার মধ্যে পূর্ববর্তী সংস্করণ এবং আরও কিছুগুলির নিকটতম আনুমানিক অন্তর্ভুক্ত রয়েছে), ডেল্টাস তৈরির চেষ্টা করে এবং সবচেয়ে ছোটটিকে বেছে নেয়। এইভাবে এটি (প্রায়শই হিউরিস্টিকের উপর নির্ভর করে) অন্যান্য অনুরূপ ফাইল বা পূর্ববর্তী সংস্করণের তুলনায় আরও পুরানো সংস্করণগুলির সুবিধা নিতে পারে। "প্যাক উইন্ডো" প্যারামিটারটি ডেল্টা সংকোচনের মানের জন্য ট্রেডিং পারফরম্যান্সের অনুমতি দেয়। ডিফল্ট (10) সাধারণত শালীন ফলাফল দেয়, তবে যখন স্থান সীমাবদ্ধ থাকে বা নেটওয়ার্ক ট্রান্সফার গতি git gc --aggressiveবাড়ায় 250 মান ব্যবহার করে যা এটি খুব ধীর হয়ে চলেছে, তবে ইতিহাসের তথ্যের জন্য অতিরিক্ত সংকোচন সরবরাহ করে।