উত্তর:
আমি নিশ্চিত আপনি কি চান না। প্রথমত, অবশ্যই প্রতিবার আপনি প্রতিশ্রুতিবদ্ধ / চাপ দেওয়ার সময় ডিরেক্টরিটি আরও বড় হতে চলেছে, যেহেতু এটি অতিরিক্ত প্রতিটি কমিটের প্রতিটি সংরক্ষণ করতে হয়।
তবে সম্ভবত আপনি চান git gcযা "অপ্রয়োজনীয় ফাইলগুলি সাফ করবে এবং স্থানীয় সংগ্রহস্থলটি অনুকূল করবে" ( ম্যানুয়াল পৃষ্ঠা )।
আরেকটি সম্ভবত প্রাসঙ্গিক কমান্ড হ'ল git cleanযা আপনার গাছ ( ম্যানুয়াল পৃষ্ঠা ) থেকে অচিহ্নযুক্ত ফাইলগুলি মুছে ফেলবে ।
WARNINGকমান্ড হিসাবে @Kalle করে উপরের লিখিত সরাবে প্রত্যেক > UNTRACKED <ফাইল ও ডিরেক্টরির আপনার Git রুট সার্ভারের মধ্যে , না শুধু ".gitignore তালিকাভুক্ত ফাইল"। গীত দ্বারা ট্র্যাক করা হচ্ছে না এমন কিছু, এটি তালিকাবদ্ধ রয়েছে কিনা তা নির্বিশেষে .gitignoreমুছে ফেলা হবে। git clean -dfX(কেসটি নোট করুন X) কেবলমাত্র এমন আইটেমগুলি সরিয়ে ফেলবে যাগুলির ক্ষেত্রে প্রযোজ্য নিয়ম রয়েছে .gitignore। দয়া করে এই সতর্কবার্তা মনোযোগ দেয়: কখনও চালানো git cleanহয় এটিকে ইন্টারেক্টিভ মোডে চালানো, সঙ্গে ছাড়া -iপরিবর্তে -f, অথবা অন্তত প্রথম একটি শুষ্ক রান করছেন - -nসঙ্গে এবং তারপর আবার -f।
চালান:
git remote prune origin
সমস্ত বাসি ট্র্যাকিং শাখাগুলি মুছে ফেলে যা ইতিমধ্যে সরানো হয়েছে originতবে এখনও স্থানীয়ভাবে উপলব্ধ remotes/origin।
git gc --auto
' জি আরবেজ সি ওলিকেশন' - গৃহকর্মের কাজ পরিচালনা করে (সংশোধনগুলি সংকুচিত করে, আলগা / অ্যাক্সেসযোগ্য অবজেক্টগুলিকে সরিয়ে দেয়)। --autoপতাকা প্রথম নির্ধারণ করে কোন কাজ প্রয়োজন বোধ করা হয় কিনা, এবং যদি না কিছু কাজ ছাড়া প্রস্থান করে।
আপনার গিট রেপো প্রতিটি প্রতিশ্রুতিবদ্ধতার সাথে মারাত্মকভাবে আরও বড় হয়ে উঠবে এমন একটি দৃশ্য হ'ল আপনি নিয়মিতভাবে বাইনারি ফাইল তৈরি করছেন you তাদের স্টোরেজ পাঠ্য ফাইলের চেয়ে দক্ষ হবে না ।
আরেকটি যেখানে আপনি মধ্যে ফাইল একটি বিশাল সংখ্যা আছে এক এক রেপো (যা একটি হল Git সীমা বিভিন্ন subrepos পরিবর্তে () submodules যেমন পরিচালিত )।
গিট স্পেস সম্পর্কিত এই নিবন্ধে , অ্যালব্লিউ উল্লেখ করেছেন:
নোট করুন যে গিট (এবং এইচজি এবং অন্যান্য ডিভিসিএস) কোনও সমস্যায় ভুগছে যেখানে (বৃহত্তর) বাইনারিগুলি চেক ইন করা হয়, তারপরে মুছে ফেলা হয়, কারণ তারা এখনও সংগ্রহস্থলটিতে প্রদর্শিত হবে এবং স্থান গ্রহণ করবে, এমনকি যদি তারা বর্তমান না হয় if ।
আপনার গিট রেপোতে আপনার যদি বড় বাইনারি থাকে তবে আপনি বিবেচনা করতে পারেন:
git filter-branch (সতর্কতা: এই ইতিহাস, যা খারাপ পুনর্লিখন করতে হবে যদি আপনি ইতিমধ্যেই আপনার রেপো push করা এবং অন্যান্য তা থেকে টানা আছে যদি থাকে)আমি যেমন " গিটে ফাইলের সীমাটি (সংখ্যা এবং আকার) কী আছে? " তে উল্লেখ করেছি, আরও সাম্প্রতিক (2015, এই উত্তরের 5 বছর পরে) গিটিহাব থেকে গিট এলএফএস files বড় ফাইলগুলি পরিচালনা করার একটি উপায় (এগুলি বাইরে সংরক্ষণ করে ) গিট সংগ্রহস্থল)।
হ্যাঁ হ্যাঁ, git gcসমাধানটি কি স্বাভাবিকভাবেই হয়?
এবং স্থানীয়ভাবে - আপনি কেবল স্থানীয় ভাণ্ডার মুছতে পারেন এবং এটি আবার ক্লোন করতে পারেন,
প্রক্রিয়াটির জন্য আপনি যে সেকেন্ডের জন্য অপেক্ষা করেন সেগুলি দীর্ঘ মুহুর্তে সংগ্রহ করা হয় যা কয়েক ঘন্টা ব্যয় করা সময় ব্যয় করা হয়,
একমাত্র সাম্প্রতিক সংস্করণের ফাইলগুলি স্ক্র্যাচ থেকে নতুন (সম্পূর্ণরূপে, কেবল একটি শাখা নয়) সংগ্রহস্থল তৈরি করুন , স্বাভাবিকভাবেই আপনি সমস্ত ইতিহাস সরিয়ে ফেলবেন,
কিন্তু কোড-ওয়ার্ল্ডে যখন সংবেদনশীল হওয়ার সময় হয় না, প্রতিটি প্রতিশ্রুতিবদ্ধ বা পৃথক কোডের পুরো 5 বছর ধরে টেনে তোলার কোনও বিন্দু নেই, আপনি এখনও পুরানো গিটটি এবং বাহ্যিক কোথাও কোথাও সংরক্ষণ করতে পারেন, যদি আপনি নস্টালজিক পান তবে:]
তবে, এক পর্যায়ে আপনাকে সত্যিই এগিয়ে যেতে হবে:]
আপনার দল আপনাকে ধন্যবাদ জানাতে হবে!
এই কমান্ডটি চালানো অত্যন্ত বিপজ্জনক, তবে আপনার সমস্ত গিট পুনরুদ্ধার / ব্যাকআপ ফাইল মুছে ফেলে আপনার সংগ্রহস্থল সঙ্কুচিত করবে:
git reflog expire --expire=now --all && git gc --prune=now --aggressive
এটি কিছু খারাপ কমান্ড থেকে আপনার সংগ্রহস্থল পুনরুদ্ধার করতে গিটের সমস্ত ফাইল মুছে ফেলবে, উদাহরণস্বরূপ, যদি আপনি এটি করেন তবে আপনি git reset --hardসাধারণত হারিয়ে যাওয়া ফাইলগুলি পুনরুদ্ধার করতে পারেন। আপনি যদি কমান্ডের git reset --hardআগে করেন git reflog expire...তবে আপনি সমস্ত কিছু হারিয়ে ফেলেছেন। এখন, আপনার একমাত্র আশা এমন কিছু সরঞ্জাম ব্যবহার করা যা আপনার ফাইল সিস্টেমটিকে বিশ্লেষণ করে এবং মুছে ফেলা ফাইলগুলি পুনরুদ্ধার করার চেষ্টা করবে, যদি সেগুলি ওভাররাইড না করা হয়।
git clean -d -f -i এটি করার সেরা উপায়।
এটি আরও নিয়ন্ত্রিত উপায়ে পরিষ্কার করতে সহায়তা করবে।
-i ইন্টারেক্টিভ মানে।
git cleanনা যে ডিরেক্টরিটি পরিষ্কার করার মতো রেপো পরিষ্কার করার জন্য নয়। অন্ধভাবে অনুলিপি / অনুলিপি করা ব্যবহারকারীদের জন্য সাবধান; এটি আপনার স্থানীয়ভাবে চাইলে হয়ত তালিকাহীন ফাইল / ডায়ারগুলি সরিয়ে দেয়।
এটি সঙ্কুচিত হবে কিনা জানেন না, তবে আমি চালানোর পরে git clean, আমি প্রায়শই এটিও করি git repack -adযা প্যাক ফাইলগুলির সংখ্যা হ্রাস করে।
git gcপ্রক্রিয়া একটি অংশ , সুতরাং এটি আলাদাভাবে চালানোর প্রয়োজন নেই