আমি কীভাবে এই সমস্যার সমাধান করব? ব্যবহার git fsck
এবং লগিং!
প্রথমে হারিয়ে যাওয়া (অ্যাক্সেসযোগ্য) কমিট এবং ব্লবসযুক্ত একটি ফাইল তৈরি করুন। (দ্রষ্টব্য: আপনি যদি এমন কিছু করেন git gc
তবে এটি আবদ্ধ করা সমস্তগুলি আবর্জনা সংগ্রহ করবে এবং আপনি এটি এখানে পাবেন না!)
$git fsck --lost-found > lost_found.commits
এটি আপনাকে এই জাতীয় একটি ফাইল দেয়:
আনত কমিট dec2c5e72a81ef06963397a49c4b068540fc0dc3
আনত ফোঁটা f8c2579e6cbfe022f08345fa7553feb08d60a975
আনত ফোঁটা 0eb3e86dc112332ceadf9bc826c49bd371acc194
আনত ফোঁটা 11cbd8eba79e01f4fd7f496b1750953146a09502
আনত কমিট 18733e44097d2c7a800650cea442febc5344f9b3
আনত ফোঁটা 1e53a5cdb3ecdde27081ec6e8b31e4070106ee05
তারপরে আপনি সেখান থেকে কমিট / ব্লগ হ্যাশ অনুলিপি করতে আপনার প্রিয় পাঠ্য সম্পাদক সহ এই ফাইলটি খুলতে পারেন। (* কাশি * ভিম ম্যাক্রোস এই * কাশি * এর জন্য দুর্দান্ত কাজ করে )
এখন আপনি এই প্রতিশ্রুতি থেকে আবার কিছু দিয়ে লগ ইন করতে পারেন git log --oneline <commit hash>
। বিকল্পভাবে, গিটক, টিগ বা অন্য কোনও গিট ভিউয়ারকে কাজ করা উচিত।
আপনার ক্ষেত্রে যদি আপনি কমিটের জন্য F হ্যাশ পান তবে লগটি আপনাকে এরকম কিছু দেখায়,
A---B---E---F
দ্রুত এবং সহজ! এখন আপনি এই সমস্ত ঝুঁকিপূর্ণ কমিটের পিছনে প্রসঙ্গটি খুঁজে পেতে পারেন।
পিএস হ্যাঁ, আমি জানি, দেরী পোস্ট, তবে ওহ ভাল, কেউ এটি এখানে খুঁজে পেতে এবং এটি দরকারী মনে হতে পারে। (সম্ভবত আমি যখন এটি আবার গুগল করি তখন 6 মাসের মধ্যে সম্ভবত)
commit --amend
বাrebase
একটি বিচ্ছিন্নভাবে হেডের সাথে কাজ করে অনাথ হয়ে যাওয়া কোনও অঙ্গীকারের মধ্যে একেবারেই পার্থক্য নেই , বলুন।