গিট-এ, শাখাগুলি কমিটের নির্দেশিত অ্যাসাইক্লিক গ্রাফ (ডিএজি) তে কমিট করার জন্য কেবল পয়েন্টার (রেফারেন্স)। এর অর্থ হল যে কোনও শাখা মুছতে মুছতে কেবল কমিটের উল্লেখগুলি সরিয়ে ফেলা হয়, যা ড্যাগের কিছু কমিটকে না পারা যায়, এইভাবে অদৃশ্য করে তুলতে পারে। তবে মুছে ফেলা শাখায় থাকা সমস্ত প্রতিশ্রুতিগুলি এখনও অবধি সংগ্রহস্থলে থাকবে, যতক্ষণ না অপ্রাপ্য কমিটিকে ছাঁটাই করা হয় (যেমন ব্যবহার করা git gc
)।
দ্রষ্টব্য যে git branch -d
কোনও শাখা মুছে ফেলতে অস্বীকার করবে যদি এটি নিশ্চিত না করা যায় যে এটি মুছে ফেলা যায় না তবে অ্যাক্সেসযোগ্য কমিটগুলি ছেড়ে যায় না। আপনার git branch -D
কোনও শাখা মুছে ফেলার জন্য জোর করে শক্তিশালী ব্যবহার করতে হবে যদি এটি অ্যাক্সেসযোগ্য কমিটগুলি ছেড়ে যায়।
এও লক্ষ্য করুন যে অ্যাক্সেসযোগ্য কমিটমেন্টগুলি যদি তারা উপস্থিত থাকে তবে কেবলমাত্র সেই মুছে ফেলা শাখার শেষ টিপ এবং অন্য কোনও বিদ্যমান শাখায় মার্জড হয়ে যাওয়া কোনও প্রতিশ্রুতি, কোনও ট্যাগযুক্ত প্রতিশ্রুতি বা শাখা দফার পয়েন্টের মধ্যে কেবল সেই কমিটগুলিই রয়েছে; যাই হোক না কেন পরে উদাহরণস্বরূপ নিম্নলিখিত পরিস্থিতিতে:
---- ও ---- * ---- * ---- / এম ---- * <- মাস্টার <- হেড
\ /
\ --. ---- .-- / - x --- y <- মুছে ফেলা শাখা
কেবল শাখাটি মোছার পরে 'x' এবং 'y' অ্যাক্সেসযোগ্য হবে।
আপনি যদি মুছে ফেলা শাখায় gc.reflogExpire
ডিফল্ট 90 দিনের মধ্যে অপারেট করেন তবে আপনার কাছে মুছে ফেলা শাখার শেষ টিপটি হেড রিফ্লোগ (রেকর্ড git reflog show HEAD
, বা git log --oneline --walk-reflogs HEAD
) রেকর্ড করা থাকবে । মোছা পয়েন্টারটি পুনরুদ্ধার করতে আপনার HEAD রেফ্লোগ ব্যবহার করতে সক্ষম হওয়া উচিত। আরও মনে রাখবেন যে এক্ষেত্রে gc.reflogExpireUnreachable
, কেবল একটি মুছে ফেলা শাখায় অ্যাক্সেস অযোগ্য কমিটগুলি পিরিয়ডের মধ্যে ছাঁটাই (অপসারণ) থেকে রক্ষা করা হবে , যা ডিফল্টরূপে 30 দিন is
আপনি যদি হেডের জন্য রিফ্লোগুলিতে কেবল মুছে ফেলা শাখার টিপটি খুঁজে না পান, তবে আপনি "অ্যাক্সেস git fsck
অযোগ্য কমিট <sha1>" সন্ধান করার জন্য, এবং মুছে ফেলা শাখার ডগা খুঁজে পেতে ( git show <sha1>
বা এর মাধ্যমে git log <sha1>
) পরীক্ষা করতে পারেন।
আপনি কীভাবে মুছে ফেলা শাখার টিপটি সন্ধান করেন সে সম্পর্কে স্বাধীন, আপনি মুছে ফেলাটিকে পূর্বাবস্থায় ফেরাতে পারেন, বা ব্যবহার করে কেবল মুছে ফেলা শাখাটি পুনরায় তৈরি করতে পারেন
git branch <deleted-branch> <found-sha1-id>
তবে মনে রাখবেন যে কোনও শাখার জন্য রিফ্লগটি হারিয়ে যাবে।
এছাড়াও git-resurrect.sh স্ক্রিপ্ট রয়েছে contrib/
যা প্রদত্ত নাম এবং এটি পুনরুত্থিত (মুছে ফেলা) সহ একটি শাখা টিপের চিহ্ন খুঁজে পেতে সহায়তা করে।