এই থ্রেডে উল্লেখ করা হয়েছে:
আপনি যদি খালি গাছের শ 1 টি মনে না রাখেন তবে আপনি সর্বদা এটির মাধ্যমে এটি পেতে পারেন:
git hash-object -t tree /dev/null
বা, যেমন সিরো সান্তিলি মন্তব্যগুলিতে প্রস্তাব করেছেন :
printf '' | git hash-object --stdin -t tree
বা, এখানে যেমন দেখা গেছে , কলিন শিম্মফিলিং থেকে :
git hash-object -t tree --stdin < /dev/null
সুতরাং আমি অনুমান করি যে এই কমান্ডের ফলাফলটি আপনার খালি শ 1 গাছ হিসাবে (একটি "সুপরিচিত মান" এর উপর নির্ভর না করে) হিসাবে একটি ভেরিয়েবল সংজ্ঞায়িত করা নিরাপদ।
দ্রষ্টব্য: গিট 2.25.1 (ফেব্রুয়ারি 2020) 9c8a294 কমিটে প্রস্তাব করেছে :
empty_tree=$(git mktree </dev/null)
# Windows:
git mktree <NUL
এবং যোগ করেছে:
Noteতিহাসিক দ্রষ্টব্য হিসাবে, বর্তমানে পরিচিত ফাংশনটি repo_read_object_file()খালি গাছটি 346245a1bb ("হার্ড-কোড ফাঁকা গাছের বস্তু", ২০০৮-০২-১৩, গিট ভি ১.৫.৫-আরসি0 - মার্জ ) শেখানো হয়েছিল , এবং ফাংশনটি এখন পরিচিত যেমন c4d9986f5foid_object_info() এ ফাঁকা গাছ শেখানো হয়েছিল (" : স্টোরের পরীক্ষাও খুব", 2011-02-07, গিট ভি 1.7.4.1)। sha1_object_infocached_object
দ্রষ্টব্য, আপনি দেখবেন যে SHA1 কিছু গিটহাব রেপোতে পপ আপ করবে যখন লেখক তার প্রথম প্রতিশ্রুতি খালি রাখতে চান (" আমি কীভাবে আমার গিট সংগ্রহস্থল শুরু করব " ব্লগ পোস্ট দেখুন ):
$ GIT_AUTHOR_DATE="Thu, 01 Jan 1970 00:00:00 +0000" GIT_COMMITTER_DATE="Thu, 01 Jan 1970 00:00:00 +0000" git commit --allow-empty -m 'Initial commit'
তোমাকে দিবে:

(SHA1 গাছটি দেখুন?)
এমনকি খালি কমিটের উপরে আপনি আপনার বিদ্যমান ইতিহাসটি পুনরায় চালু করতে পারেন (" গিটটি দেখুন: প্রথম হিসাবে একটি প্রতিশ্রুতি কীভাবে সন্নিবেশ করা যায়, অন্য সমস্ত স্থানান্তরিত করবেন? ")
উভয় ক্ষেত্রেই আপনি সেই খালি গাছের সঠিক SHA1 মানের উপর নির্ভর করবেন না।
আপনি কেবল প্রথম শূন্য প্রতিশ্রুতি দিয়ে আপনার রেপো সূচনা করে একটি সেরা অনুশীলন অনুসরণ করেন ।
এটা করতে:
git init my_new_repo
cd my_new_repo
git config user.name username
git config user.email email@com
git commit --allow-empty -m "initial empty commit"
এটি আপনার রেপো, ব্যবহারকারীর নাম, ইমেল, তৈরির তারিখের সাথে সম্পর্কিত একটি SHA1 এর সাথে একটি প্রতিশ্রুতি উত্পন্ন করবে (অর্থ প্রতিশ্রুতির SHA1 নিজেই আলাদা হবে)।
কিন্তু সেই প্রতিশ্রুতি দ্বারা উল্লিখিত 4b825dc642cb6eb9a060e54bf8d69288fbee4904গাছটি হ'ল, খালি গাছ SHA1।
git log --pretty=raw
commit 9ed4ff9ac204f20f826ddacc3f85ef7186d6cc14
tree 4b825dc642cb6eb9a060e54bf8d69288fbee4904 <====
author VonC <vonc@laposte.net> 1381232247 +0200
committer VonC <vonc@laposte.net> 1381232247 +0200
initial empty commit
কেবল একটি প্রতিশ্রুতিবদ্ধ গাছ দেখানোর জন্য (কমিট ট্রি SHA1 প্রদর্শন করুন):
git show --pretty=format:%T 9ed4ff9ac204f20f826ddacc3f85ef7186d6cc14
4b825dc642cb6eb9a060e54bf8d69288fbee4904
যদি সেই প্রতিশ্রুতিবদ্ধ হয়, একটি খালি গাছ উল্লেখ করে, সত্যিই এটি আপনার প্রথম প্রতিশ্রুতি থাকে তবে আপনি খালি গাছটি SHA1 এর সাথে দেখাতে পারেন:
git log --pretty=format:%h --reverse | head -1 | xargs git show --pretty=format:%T
4b825dc642cb6eb9a060e54bf8d69288fbee4904
(এবং এটি এমনকি উইন্ডোতে উইন্ডো কমান্ডের সাথে গনু-র সাথেও কাজ করে )
নীচে মন্তব্য হিসাবে , ব্যবহার করে git diff <commit> HEAD, এটি আপনার সমস্ত ফাইলকে বর্তমান শাখার হেডে প্রদর্শন করবে:
git diff --name-only 4b825dc642cb6eb9a060e54bf8d69288fbee4904 HEAD
দ্রষ্টব্য: খালি গাছের মানটি আনুষ্ঠানিকভাবে সংজ্ঞায়িত করা আছে cache.h।
#define EMPTY_TREE_SHA1_HEX \
"4b825dc642cb6eb9a060e54bf8d69288fbee4904"
গিট 2.16 (কিউ 1 2018) থেকে, এটি এমন স্ট্রাকচারে ব্যবহৃত হয় যা কমিট eb0ccfd তে দেখা যায় (কেবল) SHA1 এর সাথে আর আবদ্ধ নয় :
হ্যাশ বিমূর্ততা ব্যবহার করতে খালি গাছ এবং ব্লব লুকআপগুলিতে স্যুইচ করুন
ব্যবহারের ক্ষেত্রে বর্তমান হ্যাশ অ্যালগরিদমকে উপস্থাপন করে এমন বিমূর্ততা ব্যবহার empty_tree_oidএবং empty_blob_oidব্যবহার করতে স্যুইচ করুন current_hash।
" গিট আরও আধুনিক এসএইচএ ব্যবহার করে না কেন? " এ আরও দেখুন : এটি গিটার ২.১৯ (প্র 3 2018) থেকে শ্যা -2 ,
গিট 2.25 (কিউ 12020) দিয়ে, পরীক্ষাগুলি একটি SHA-2 স্থানান্তরের জন্য প্রস্তুতি নিচ্ছে এবং খালি গাছের সাথে জড়িত।
দেখুন fa26d5e কমিট , cf02be8 কমিট , 38ee26b কমিট , কমিট 37ab8eb , কমিট 0370b35 , কমিট 0253e12 , কমিট 45e2ef2 , 79b0edc কমিট , কমিট 840624f , কমিট 32a6707 , কমিট 440bf91 , 0b408ca কমিট , কমিট 2eabd38 (28 অক্টোবর 2019), এবং 1bcef51 কমিট , কমিট ecde49b (05 অক্টোবর 2019) ব্রায়ান মি। কার্লসন ( bk2204) ।
(দ্বারা একীভূত junio সি Hamano - gitster- মধ্যে 28014c1 কমিট, 10 নভেম্বর 2019)
t/oid-info: খালি গাছ এবং খালি ব্লব মান যুক্ত করুন
সাইন-অফ-বাই: ব্রায়ান মি। কার্লসন
পরীক্ষাগুলি শেষ পর্যন্ত কীভাবে SHA-1 ব্যতীত অন্য একটি অ্যালগরিদম ব্যবহার করে চালানো যায় তা শিখবে। এর প্রস্তুতিতে, test_oidফাংশনগুলির পরিবারকে শিখুন কীভাবে ফাঁকা ফাঁকা এবং খালি গাছের মূল্যগুলি সন্ধান করা যায় যাতে তারা ব্যবহার করতে পারে to
সুতরাং t/oid-info/hash-infoএখন অন্তর্ভুক্ত:
rawsz sha1:20
rawsz sha256:32
hexsz sha1:40
hexsz sha256:64
zero sha1:0000000000000000000000000000000000000000
zero sha256:0000000000000000000000000000000000000000000000000000000000000000
algo sha1:sha1
algo sha256:sha256
empty_blob sha1:e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
empty_blob sha256:473a0f4c3be8a93681a267e3b1e9a7dcda1185436fe141f7749120a303721813
empty_tree sha1:4b825dc642cb6eb9a060e54bf8d69288fbee4904
empty_tree sha256:6ef19b41225c5369f1c104d45d8d85efa9b057b53b14b4b9b939dd74decc5321
SHA2 " 6ef19b41225c5369f1c104d45d8d85efa9b057b53b14b4b9b939dd74decc5321" হ'ল নতুন SHA1 " 4b825dc642cb6eb9a060e54bf8d69288fbee4904" খালি গাছ।