গিট জিইউআই যে "আলগা বস্তুগুলি" বোঝায়?


219

আমি যখন গিট জিইউআই খুলি , আমি একটি পপআপ বার্তা পাই যা উল্লেখ করে loose objects। আমি করেছি git gcএবং এটি বার্তা সরিয়ে দিয়েছে।

কী কী loose objectsএবং কীভাবে আমি এটি আবার সংঘটিত হতে রোধ করতে পারি?


পপআপ বার্তায় আপনি কেবল "হ্যাঁ" ক্লিক করতে পারেন যখন জিজ্ঞাসা করা হয় যে আলগা বস্তুগুলি এখনই প্যাক করা উচিত কিনা। গিট জিইউআইgit gc আপনার জন্য চলবে , একটি দুর্দান্ত জিইউআই প্রগতি বার (যদিও বেশিরভাগ সময় আটকে রয়েছে)।
এডিটিসি

উত্তর:


144

SHA এর সাথে একটি বস্তু (ব্লবস, ট্রি এবং কমিটস) বলবে - 810cae53e0f622d6804f063c04a83dbc3a11b7ca এখানে সংরক্ষণ করা হবে

.git/objects/81/0cae53e0f622d6804f063c04a83dbc3a11b7ca

(ফাইল সিস্টেমের কার্যকারিতা উন্নত করার জন্য প্রথম দুটি অক্ষরের বিভাজন যেমন সমস্ত ডিরেক্টরি একই ডিরেক্টরিতে সংরক্ষণ করা হয় না)

উপরের মতো সঞ্চিত বস্তুগুলি লুজ অবজেক্ট হিসাবে উল্লেখ করা হয়।

আপনি যখন আপনার রেপো শুরু করবেন, আপনার বেশিরভাগ ক্ষেত্রে looseিলা জিনিস রয়েছে objects সংখ্যাটি আরও বাড়ার সাথে সাথে এটি অদক্ষ হয়ে ওঠে এবং সেগুলি একটি প্যাক ফাইলে সংরক্ষণ করা হয়। এ জাতীয় অবজেক্টকে প্যাকড অবজেক্টস বলা হয়।

 git gc

আপনি যা বস্তুগুলি প্যাক করতে চালিত তা হ'ল (সাধারণত আলগা বস্তু যা প্রয়োজন হয় না এবং কয়েক সপ্তাহ পুরাতনও সরিয়ে ফেলা হয় এবং --prune=<date>বিকল্পের সাহায্যে আপনি আলগা বস্তুগুলি আর প্রয়োজন হয় না এমন জোর করে ফেলতে পারেন you আর প্রয়োজন।)


3
--pruneবিকল্পটি ডিফল্টরূপে সক্রিয় করা হয় এবং যেহেতু git gcস্বয়ংক্রিয়ভাবে সাধারণ ব্যবহারের (যেমন দ্বারা আলোড়ন সৃষ্টি হয় commit), আপনি কি সাধারণত এই সম্পর্কে চিন্তা করতে হবে না। আমি গিট গুই ব্যবহার করি না, এবং উত্সটিতে এটি ঠিক কোথায় স্থান পেয়েছে তা আমি খুঁজে পাচ্ছি না, তবে এটির নিজস্ব চেকটি হয়, বা কেবল gcএকটি আদেশযুক্ত ট্রিগার দ্বারা বাধা দেয় । এটি অবশ্যই উদ্বিগ্ন হওয়ার মতো কিছু নয়, যদিও এটি কেবল সাধারণ ব্যবহারের কারণে ঘটে।
ক্যাসাবেল

21
আলগা বস্তু প্যাকিং কোন খারাপ দিক আছে? যদি তা না হয়, গিট কেন এটি স্বয়ংক্রিয়ভাবে করে না?
লুই রাইস

13
আমি মনে করি না যে এটি সত্য যে এটি স্বয়ংক্রিয়ভাবে ঘটে। আমি প্রায়শই প্রতিশ্রুতিবদ্ধ করি তবে উল্লিখিত 'গিট গুই'তে ৫০,০০০ আলগা বস্তু ছিল (এবং অবাক হয়ে ভাবছেন যে গিটারটি কেন এত ম্লান, 4 বছর ধরে কোনও ম্যানুয়াল জিসি ছাড়াই বড় প্রকল্প ছিল)
কেভিন

1
@ কেভিন আপনি কীভাবে git gcম্যানুয়ালি দৌড়ানোর পরে আপনার বিশাল প্রকল্পের কর্মক্ষমতা উন্নত করেছেন ? আমি মনে করি এটির উন্নতি হওয়া উচিত, কারণ আলগা বস্তুগুলি অদক্ষ এবং 50,000 খুব সংখ্যক। আমি আরও জানতে পেরেছি যে প্যাকিং .gitফোল্ডারের দ্বারা ব্যবহৃত স্থানটিও ব্যাপকভাবে হ্রাস করে ।
এডিটিসি

3
@ লুইসহাইস, "যখন বস্তুগুলিকে ডিস্কে লেখা হয়, এটি প্রায়শই আলগা বিন্যাসে হয়, যেহেতু সেই বিন্যাসটি অ্যাক্সেস করার জন্য কম ব্যয়বহুল However তবে, অবশেষে আপনি অবজেক্টগুলি প্যাক করে স্থানটি সংরক্ষণ করতে চান" - গিট বুক থেকে উত্তরে
খ্রিস্ট

39

গিট বুকটি এটি বেশ ভালভাবে ব্যাখ্যা করেছে: https://git-scm.com/book/en/v2/Git- অন্তর্ভুক্ত- প্যাকফিল

আলগা বস্তুগুলি সহজ ফর্ম্যাট। এটি কেবলমাত্র ডিস্কের একক ফাইলে সঞ্চিত সংকোচিত ডেটা। পৃথক ফাইলে লেখা প্রতিটি বস্তু।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.