আমি কেবল উত্তরটি প্রসারিত করছি @Leif Gruenwoldtএবং প্রদত্ত রেফারেন্সে কী রয়েছে তা বিশদ দিয়ে@Leif Gruenwoldt
নিজে করো..
- পদক্ষেপ 1. আপনার সংগ্রহস্থলে একটি খালি পাঠ্য নথি তৈরি করুন (নামটির কোনও বিষয় নেই)
- পদক্ষেপ 2. স্টেজ এবং ডকুমেন্ট প্রতিশ্রুতিবদ্ধ
- পদক্ষেপ 3. কার্যকর করে ব্লব এর হ্যাশ সনাক্ত করুন
git ls-tree HEAD
- পদক্ষেপ 4. ব্লব এর হ্যাশ হতে সন্ধান করুন
e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
- পদক্ষেপ 5. আপনার আশ্চর্য থেকে স্ন্যাপ আউট এবং নীচে পড়ুন
জিআইটি কীভাবে এর কমিটস হ্যাশগুলি গণনা করে?
Commit Hash (SHA1) = SHA1("blob " + <size_of_file> + "\0" + <contents_of_file>)
পাঠ্যটি blob⎵একটি ধ্রুবক উপসর্গ এবং \0স্থির এবং NULLঅক্ষরও। <size_of_file>এবং <contents_of_file>ফাইল উপর নির্ভর করে।
দেখুন: গিট কমিট অবজেক্টের ফাইল ফর্ম্যাট কী?
এবং সব লোককে ধন্যবাদ!
কিন্তু অপেক্ষা করো! , আপনি কি লক্ষ্য করেছেন যে <filename>এটি হ্যাশ গণনার জন্য ব্যবহৃত একটি প্যারামিটার নয়? দুটি ফাইলে সম্ভাব্যত একই হ্যাশ থাকতে পারে যদি তাদের বিষয়বস্তুগুলি তারা তৈরির তারিখ এবং সময় এবং তাদের নাম একই রকম উদাসীন হয়। গিট অন্যান্য সংস্করণ নিয়ন্ত্রণ সিস্টেমের চেয়ে ভাল নাম পরিবর্তন করতে এবং পুনরায় নামকরণ করায় এটির একটি কারণ।
নিজে করুন (এক্সট্রা)
- পদক্ষেপ
filenamethe. একই ডিরেক্টরিতে আলাদা করে অন্য একটি খালি ফাইল তৈরি করুন
- পদক্ষেপ your. আপনার উভয় ফাইলের হ্যাশগুলির সাথে তুলনা করুন।
বিঃদ্রঃ:
লিঙ্কটিতে কীভাবে treeঅবজেক্টটি হ্যাশ হয়েছে তা উল্লেখ করা হয়নি । আমি অ্যালগরিদম এবং প্যারামিটারগুলির বিষয়ে নিশ্চিত নই তবে আমার পর্যবেক্ষণ থেকে এটি সম্ভবত সমস্ত হ্যাশ blobsএবং তার trees(সম্ভবত তাদের হ্যাশগুলি) এর উপর ভিত্তি করে একটি হ্যাশ গণনা করে