গিট ফাইলের সামগ্রীগুলি ট্র্যাক করে, ফাইলের নাম নয়। সুতরাং কোনও ফাইলের সামগ্রী পরিবর্তন না করেই নতুন নামকরণ করা গিটের পক্ষে সনাক্ত করা সহজ। (গীত ট্র্যাক যাবে না, তবে সঞ্চালিত সনাক্তকরণ ; ব্যবহার git mvবা git rmএবং git add। কার্যকরভাবে একই)
সংগ্রহস্থলে কোনও ফাইল যুক্ত করা হলে ফাইলের নাম গাছের বস্তুতে থাকে। প্রকৃত ফাইলের সামগ্রীগুলি সংগ্রহস্থলে বাইনারি লার্জ অবজেক্ট ( ব্লব ) হিসাবে যুক্ত করা হয় । গিট একই বিষয়বস্তুযুক্ত অতিরিক্ত ফাইলগুলির জন্য আর একটি ব্লব যুক্ত করবে না। প্রকৃতপক্ষে, গিটটি ফাইল সিস্টেমে লিখিত সামগ্রী হিসাবে সংরক্ষণ করা হয় না কারণ হ্যাশের প্রথম দুটি অক্ষরের সাথে ডিরেক্টরিটির নাম এবং বাকী এটির মধ্যে ফাইলের নাম। সুতরাং নামগুলি সনাক্ত করা হ্যাশগুলির সাথে তুলনা করার বিষয়।
নাম পরিবর্তিত ফাইলে ছোট পরিবর্তনগুলি সনাক্ত করতে, গিট কিছু নির্দিষ্ট অ্যালগরিদম এবং একটি নাম পরিবর্তন করে কিনা তা দেখতে একটি থ্রোসোল্ড সীমা ব্যবহার করে। উদাহরণস্বরূপ, এর -Mজন্য পতাকাটি দেখুন git diff। কনফিগারেশন মানগুলি যেমন merge.renameLimit(মার্জ করার সময় পুনরায় নাম সনাক্তকরণের সময় বিবেচনা করা ফাইলগুলির সংখ্যা)।
গিট কীভাবে অনুরূপ ফাইলগুলি ব্যবহার করে (উদাহরণস্বরূপ, কোন ফাইল রূপান্তরকে পুনরায় নাম হিসাবে বিবেচনা করা হয়), উপরে বর্ণিত কনফিগারেশন বিকল্প এবং পতাকাগুলি উপলভ্য করুন। আপনার কীভাবে বিবেচনা করা উচিত নয়। গিট কীভাবে এই কাজগুলি সম্পাদন করে তা বুঝতে, পাঠ্যের মধ্যে পার্থক্য সন্ধানের জন্য অ্যালগরিদমগুলি দেখুন এবং গিট উত্স কোডটি পড়ুন।
অ্যালগরিদমগুলি শুধুমাত্র ডিফ, মার্জ এবং লগের উদ্দেশ্যে প্রয়োগ করা হয় - তারা কীভাবে গিট সংরক্ষণ করে তা প্রভাবিত করে না। ফাইল সামগ্রীতে যে কোনও ছোট পরিবর্তন মানে এর জন্য একটি নতুন অবজেক্ট যুক্ত করা হয়েছে। সেই স্তরে কোনও ব-দ্বীপ বা ভিন্নতা ঘটছে না। অবশ্যই, পরে, বস্তুগুলি প্যাক করা যেতে পারে যেখানে ডেল্টা প্যাকফিলগুলিতে সঞ্চিত রয়েছে, তবে এটি নামকরণ সনাক্তকরণের সাথে সম্পর্কিত নয়।