গিট: ঝনঝন কমিট / ব্লব কী এবং তারা কোথা থেকে আসে?


148

আমি ঝুঁকিপূর্ণ কমিট ও ব্লবসের প্রাথমিক তথ্য সন্ধান করছি।

আমার রেপো ঠিক আছে। তবে git fsckএটি কী হয়েছিল তা দেখার জন্য আমি প্রথমবারের জন্য দৌড়ে এসেছি এবং আমার কাছে 'ড্যাংলিং ব্লবস' এর একটি দীর্ঘ তালিকা এবং একটি একক 'ঝুঁকির প্রতিশ্রুতি' রয়েছে।

এ জিনিসগুলো কি? তারা কোথাথেকে এসেছে? তারা কি আমার রেপোর অবস্থা সম্পর্কে অস্বাভাবিক কিছু (ভাল বা খারাপ) নির্দেশ করে?

উত্তর:


95

আপনার গিট সংগ্রহস্থলটির সাথে কাজ করার সময়, আপনি অপারেশনগুলি ব্যাক আপ করতে এবং মধ্যবর্তী ব্লাডের কারণ হিসাবে এমন অন্যান্য পদক্ষেপগুলি তৈরি করতে পারেন, এবং এমনকী কিছু তথ্য যা আপনার ক্ষতি তথ্য এড়াতে সহায়তা করে।

অবশেষে (শর্তসাপেক্ষে, git gc man পৃষ্ঠা অনুসারে ) এটি আবর্জনা সংগ্রহ করবে এবং এই জিনিসগুলি পরিষ্কার করবে clean আবর্জনা সংগ্রহের প্রক্রিয়া শুরু করে আপনি এটিকে জোর করতে পারেন git gc,।

এটি সম্পর্কে আরও তথ্যের জন্য, গিট-স্কেম সাইটে রক্ষণাবেক্ষণ এবং ডেটা পুনরুদ্ধার দেখুন

সুরক্ষার জালের এই কমান্ডের রানটাইমের 2 সপ্তাহ আগে জিসির একটি ম্যানুয়াল রান ডিফল্টভাবে ছাড়বে। প্রকৃতপক্ষে আপনার গিট সংগ্রহস্থলের পারফরম্যান্ট ব্যবহার নিশ্চিত করতে সহায়তা করার জন্য মাঝে মাঝে জিসি চালনা করতে উত্সাহিত করা হয়। যে কোনও কিছুর মতো, আপনার পক্ষে গুরুত্বপূর্ণ হওয়া জিনিসগুলি ধ্বংস করার আগে আপনার বুঝতে হবে যে এটি কী করছে should


10
সুতরাং এটি বলা মোটেও যথাযথ নয়) 1) যদি না আমি মনে করি আমার রেপোতে কিছু ভুল আছে তবে এগুলি মুছে ফেলা নিরাপদ git gcএবং ২) আমার এ নিয়ে মোটেও চিন্তা করার দরকার নেই কারণ এই ঝোলা বিটগুলি স্বাভাবিক এবং ইতিমধ্যে গিট তাদের হাতল?
two1ejack

7
এটি একটি ন্যায্য মূল্যায়ন হবে।
ভিজিওফ

9
এছাড়াও, যে কোনও সময় আপনি কোনও ফাইল 'গিট' করেন, তবে ফাইলটির সঠিক সংস্করণটি প্রতিশ্রুতিবদ্ধ করবেন না, আপনি একটি ঝুঁকির ঝাঁকুনির সাথে শেষ করেন। উদ্বিগ্ন হওয়ার কিছু নেই।
ক্যান্টন 7

7
شڪ 1 ইজ্যাক - সাধারণভাবে বলতে গেলে আপনার ময়লা থেকে আবর্জনা সংগ্রহ চলবে না। এটি aোকা একটি খারাপ অভ্যাস এবং যাইহোক যখন প্রয়োজন হয় তখন গিট আবর্জনা সংগ্রহ করে। এটিকে ম্যানুয়ালি চালানোর অসুবিধাটি হ'ল আপনি ঝোলা ব্লবগুলি পুনরুদ্ধার করার ক্ষমতা হারিয়ে ফেলেছেন এবং প্রতিশ্রুতি দিয়েছেন যে আপনি এখনই চাইবেন না তবে আপনি ভবিষ্যতেও চাইবেন। একবার আপনি আবর্জনা সংগ্রহ চালানোর পরে আপনি গিট থেকে কিছু চমত্কার শক্তিশালী রিভার্ট কার্যকারিতা কেড়ে নেবেন। সাবধানতার সাথে এবং ব্যতিক্রম হিসাবে ব্যবহার করুন, নিয়ম নয়। --- শুধু গিট তার কাজ করতে দিন।
লেন

95

ঝাঁকুনি ব্লব = এমন একটি পরিবর্তন যা এটিকে মঞ্চে স্থান / সূচিতে পরিণত করে কিন্তু প্রতিশ্রুতিবদ্ধ হয় নি। গিটের সাথে আশ্চর্যজনক একটি বিষয় হ'ল এটি একবার মঞ্চ অঞ্চলে যুক্ত হয়ে গেলে আপনি সর্বদা এটি ফিরিয়ে আনতে পারেন কারণ এই ব্লবগুলি কমিটের মতো আচরণ করে যে তাদেরও একটি হ্যাশ রয়েছে !!

ডিঙলিং কমিট = এমন প্রতিশ্রুতি যা কোনও শিশু প্রতিশ্রুতি, শাখা, ট্যাগ বা অন্যান্য রেফারেন্সের সাথে সরাসরি লিঙ্কিত নয়। আপনি এই ফিরে পেতে পারেন!


5
'পূর্বপুরুষদের' 'বংশধর' পড়া উচিত? সাধারণভাবে, আপনি এর পূর্বপুরুষদের মাধ্যমে কোনও গিট কমিটে পৌঁছতে পারবেন না।
ফিল মিলার

@ নভেলোক্র্যাট আমারও একই চিন্তা ছিল, আমি সম্ভবত এটি বংশধরদের পড়া উচিত বলে আমি সম্মত।
স্টকেন্ট

1
আমি এখনও আপনার উত্তরে "আরোহী" পড়ি। দেখে মনে হচ্ছে ২ জুলাই থেকে আপনার সংস্করণ টাইপো সঠিকভাবে সংশোধন করে নি।
আইসিএলম্যান

ঝাঁকুনি ফোঁটা কীভাবে ফিরে পাবে?
হ্যালোগডবাই

1
@ এলিজাহলিন আপনি ঠিক বলেছেন আমি মনে করি আমি আলোচনাগুলিও খুব দ্রুত পড়ি। ঝুঁকিপূর্ণ প্রতিশ্রুতিতে কোনও বংশধর / সন্তান নেই এবং ট্যাগ বা শাখা দ্বারা এটি রেফারেন্স করা হয় না।
আইসিএলম্যান

44

Http://www.tekkie.ro/news/howto-remove-all-dangling-commits-from-your-git-repository/ থেকে আপনার গিট সংগ্রহস্থল থেকে সমস্ত ঝুঁকিপূর্ণ কমিটগুলি সরান কীভাবে

git reflog expire --expire=now --all
git gc --prune=now

নিশ্চিত হয়ে নিন যে আপনি সত্যিই এগুলি সরাতে চান, কারণ আপনি সিদ্ধান্ত নিতে পারেন যে সর্বোপরি আপনার তাদের প্রয়োজন।


5
বাস্তবে, বেশিরভাগ ব্যবহারকারীর এটির কখনই প্রয়োজন হয় না এবং যদি তারা এটি করে তবে এটি সম্ভবত কোনও প্রোগ্রাম্যাটিক ব্যবহারের ক্ষেত্রে। ঝুঁকিপূর্ণ কমিটগুলি অপসারণ করে ডিস্কের স্থান বাঁচানো বা গতি বৃদ্ধি করা আমার মতে চেষ্টা করার মতো নয়।
এলিজা লিন

1
এটি একটি পৃথক প্রশ্নের উত্তর দেয়।
এলিজা লিন

5

জটলা প্রতিশ্রুতিবদ্ধ একটি প্রতিশ্রুতি যা রেফারেন্সের সাথে সম্পর্কিত নয়, অর্থাত এটি পৌঁছানোর কোনও উপায় নেই।

উদাহরণস্বরূপ, নীচের চিত্রটি বিবেচনা করুন। মনে করুন আমরা শাখা ফিচার এক্স এর পরিবর্তনগুলি মার্জ না করে মুছে ফেলছি, তারপরে কমিট ডি একটি জটলা প্রতিশ্রুতিতে পরিণত হবে কারণ এর সাথে কোনও রেফারেন্স যুক্ত নেই। যদি এটি মাস্টারের সাথে একীভূত হয়ে থাকে, তবে হেড এবং মাস্টার রেফারেন্সগুলি ডি প্রতিশ্রুতি দেওয়ার দিকে ইঙ্গিত করত এবং আমরা ফিচারএক্স মুছে ফেলা হলেও এটি আর ঝোঁক হবে না। এটিকে আরও ভাল করে বুঝতে ডায়াগ্রামের পরে নোটটি পড়ুন।

গিট স্বয়ংক্রিয়ভাবে আবর্জনা সংগ্রহ করে (অর্থাত্ নিষ্পত্তি করা) ঝুঁকিতে পড়ে। আমরা git reflogএকটি শাখা পুনরুদ্ধার করতে (ঝুঁকিপূর্ণ কমিটের) ব্যবহার করতে পারি যা এটি মার্জ না করে মুছে ফেলা হয়েছিল। মুছে ফেলা কমিটগুলি কেবলমাত্র যদি স্থানীয় অবজেক্ট স্টোরে উপস্থিত থাকে তবে আমরা তা পুনরুদ্ধার করতে পারি। যদি এটি আবর্জনা সংগ্রহ করা হত, তবে আমরা এটি পুনরুদ্ধার করতে পারি না।

এখানে চিত্র বর্ণনা লিখুন

দ্রষ্টব্য যে একটি শাখার নাম অর্থাত্ শাখার লেবেলটি একটি শাখার সর্বশেষ প্রতিশ্রুতি সম্পর্কিত একটি শাখা অর্থাৎ শাখার ডগা। উপরের চিত্রটিতে, ফিচারএক্স, মাস্টার এবং হেড কেবল নির্দিষ্ট কমিটের উল্লেখ রয়েছে। ফিচারএক্স এবং মাস্টার লেবেলগুলি তাদের নিজ নিজ শাখায় সর্বশেষ কমিটগুলি উল্লেখ করে। হেড সাধারণত সাধারণত চেক আউট শাখার টিপকে বোঝায় (এই ক্ষেত্রে মাস্টার)। আপনি যদি আপনার বর্তমান শাখায় কোনও পুরানো প্রতিশ্রুতি চেকআউট করেন, তবে হেড একটি বিচ্ছিন্ন অবস্থায় থাকবে, অর্থাৎ এটি সর্বশেষতমের পরিবর্তে পুরানো প্রতিশ্রুতি দেখায়। এছাড়াও নোট করুন যে হেডকে একটি প্রতীকী রেফারেন্স বলা হয় কারণ এটি প্রকৃতপক্ষে বর্তমান শাখা লেবেলের দিকে নির্দেশ করে এবং কোনও শাখা লেবেল সর্বদা শাখার ডগায় নির্দেশ করে। সুতরাং, সাধারণ পরিস্থিতিতে, হেড পরোক্ষভাবে সর্বশেষ প্রতিশ্রুতিতে নির্দেশ করে।

একপাশে, নোট করুন যে গিট এটির নির্দেশক অ্যাসাইক্লিক গ্রাফ হিসাবে তার প্রতিশ্রুতিবদ্ধ গ্রাফ / ইতিহাস উপস্থাপন করে । প্রতিটি প্রতিশ্রুতিবদ্ধ এর পিতামাতার একটি রেফারেন্স আছে। অতএব, প্রতিশ্রুতিবদ্ধ চিত্রের তীরগুলি শিশু প্রতিশ্রুতি থেকে পিতামাতার প্রতিশ্রুতিতে যুক্ত হয়। একটি শাখায় পুরানো কমিটস পৌঁছানোর জন্য আমাদের সর্বশেষ শিশু প্রতিশ্রুতিবদ্ধতার একটি রেফারেন্স প্রয়োজন need

পিএস - উপরোক্ত চিত্র এবং বুদ্ধি এই নিখরচায় কোর্স থেকে প্রাপ্ত হয়েছিল । কোর্সটি বেশ পুরানো হলেও জ্ঞানটি এখনও প্রাসঙ্গিক।

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