আপডেট: git pruneইস্যুটিকে "সমাধান" করবে, যাতে এটি সেই আলগা বস্তুগুলি সরিয়ে ফেলবে
( git gcকলগুলি git prune, কিন্তু কেবলমাত্র দুই সপ্তাহের বেশি পুরানো objectsিলে জিনিসগুলির জন্য, ডিফল্টরূপে)।
তবে ওপি মাইকেল ডোনহুয়ে মন্তব্যে উল্লেখ করেছেন:
আমি weeksিলে .ালা বস্তুগুলিকে প্রায় দুই সপ্তাহ ধরে রাখার সুরক্ষার দিকটি পছন্দ করি, আমি কি ফিরে যেতে চাই এবং কিছু পুরানো সংশোধনগুলি দেখতে চাই, তাই আমি এই সমাধানটি সত্যিই পছন্দ করি না।
গিটের আকার বা পারফরম্যান্স নিয়ে আমার কোনও সমস্যা হচ্ছে না, এটি কেবল 'গিট গুই' যা আমাকে ডাটাবেসটি সংক্ষেপ করতে বলার জন্য জোর দিয়েছিল, এমনকি ডাটাবেসকে সংকুচিত করার ফলে কোনও প্রভাব পড়বে না।
আসল উত্তর:
" git gc" সমস্ত আলগা বস্তু অপসারণ না করার সমস্যাটি "এর আগে জানা গিয়েছে (২০০৮ এর শেষ দিকে," " git gc" "আলগা বস্তুগুলিকে আর সরানো হবে বলে মনে হয় না "
git gcকেবল দুই সপ্তাহেরও বেশি পুরানো looseিলে .ালা সরিয়ে দেয়, আপনি যদি এখনই সেগুলি সরাতে চান তবে গিট প্রুন চালান।
তবে নিশ্চিত করুন যে আপনি চালানোর সময় অন্য কোনও গিট প্রক্রিয়া সক্রিয় হতে পারে না বা এটি সম্ভবত কোনও কিছুতে পদক্ষেপ নিতে পারে।
" git gc" এমন বস্তুগুলি আনপ্যাক করবে যা অ্যাক্সেসযোগ্য হয়ে উঠেছে এবং বর্তমানে প্যাকগুলিতে ছিল।
ফলস্বরূপ, গিট সংগ্রহস্থল দ্বারা ব্যবহৃত ডিস্ক স্পেসের পরিমাণ আসলে একটি অপারেশন শেষে নাটকীয়ভাবে উপরেgit gc উঠতে পারে, যা তাদের ফাইল সিস্টেমে পুরোপুরি বন্ধ হয়ে চলছে এমন ব্যক্তির জন্য অবাক করা হতে পারে, ট্র্যাকিংয়ের সংগ্রহশালা থেকে বেশ কয়েকটি শাখা মুছে ফেলা হয় , এবং তারপরে একটি " git gc" খুব অপ্রীতিকর চমক পেতে পারে।
[উদাহরণ: ]পুরাতন শাখাগুলি যেমন কোনও ট্যাগের মাধ্যমে সংরক্ষিত থাকে next-20081204।
আপনি যদি প্রতিদিন আপনার স্থানীয় অনুলিপিটির অনুলিপি আপডেট করেন তবে আপনি linux-nextএই পুরানো শাখা ট্যাগের একটি বিশাল সংখ্যা সংগ্রহ করবেন ulate
তারপরে যদি আপনি সেগুলির একটি সম্পূর্ণ সিরিজ মুছে ফেলেন এবং চালনা করেন git-gcতবে অপারেশনটি বেশ খানিকটা সময় নেবে এবং ব্যবহৃত ব্লক এবং ইনোডের সংখ্যা উল্লেখযোগ্যভাবে বৃদ্ধি পাবে।
তারা একটি " git prune" পরে অদৃশ্য হয়ে যাবে , তবে আমি যখন এই গৃহকর্ম পরিচালনা করি, আমি প্রায়শই --yes-I-know-what-I-am-doing-and-it's-unsafe-but-just-drop-the-unreachable-objects-cause-this-is-just-a-tracking-repository"গিট জিসি" বিকল্পের জন্য চেয়েছিলাম ।
তাহলে আপনার ক্ষেত্রে, " git prune" কি সহায়ক হবে?
(সম্ভবত gc.pruneexpireউপরের আচরণটি ঘটানোর জন্য কনফিগার ভেরিয়েবলে "এখন" ব্যবহার করে )।
আপনারও রয়েছে (একই থ্রেড থেকে):
repack -a -d -l
ছোট হাতের 'ক' লক্ষ্য করুন।
git-gcআপেরকেস 'এ' দিয়ে রিপ্যাক কল করে যা অ্যাক্সেসযোগ্য বস্তুগুলিকে প্যাক না করে রাখে। ছোট্ট 'এ', সেই লোকদের জন্য যারা জানেন তারা কী করছে এবং গিটটি কেবল অ্যাক্সেসযোগ্য অবজেক্টগুলি ফেলে দিতে চায়।