আমি কীভাবে দুর্ঘটনাজনিত গিট পুশ-এফ থেকে পুনরুদ্ধার করতে পারি?


13

আমি কেবল git push -fভুল করে দৌড়েছি , এভাবে একটি দূরবর্তী শাখাটি ওভাররাইট করে।

মূল:

(remote origin:)
    branch master -> commit aaaaaaa
    branch foo    -> commit bbbbbbb

(local)
    branch master -> commit ccccccc
    branch foo    -> commit ddddddd

পরে git push -f:

(remote origin:)
    branch master -> commit ccccccc
    branch foo    -> commit ddddddd

আমার স্থানীয় সংগ্রহস্থলের, আমি কাজ করছি masterশাখা, তাই আমি শাখা পুনরুদ্ধার করতে পারেন masterসমর্পণ করতে aaaaaaa, কারন আমি কমিট করতে পারেন aaaaaaaথেকে git reflog। যাইহোক, আমি প্রতিশ্রুতি পেতে পারি না bbbbbbbকারণ আমি আগে টানিনি git push -f

আমি git reflogদূরবর্তী সংগ্রহস্থলটিতে চেষ্টা করেছি , তবে খালি সংগ্রহস্থলটিতে রিফ্লোগের জন্য কার্যকর কিছু নেই।

আমি কীভাবে ব্রাঞ্চটি রিমোট রিপোজিটরিতে fooপ্রতিশ্রুতিবদ্ধ করতে ফিরিয়ে আনতে পারি bbbbbbb?

(পিএস আমি এর আসল মূল্য জানি না bbbbbbb))


কিন্তু রিমোট রেপো একটি খালি রেপো।
Xiè Jìléi

উত্তর:


12

এটা চেষ্টা কর:

  1. এসএসএইচ ওভার রিমোটের সাথে সংযুক্ত করুন।

  2. পুরো দূরবর্তী সংগ্রহস্থলের ব্যাকআপ নিন Make

    tar cvzf project-backup.tgz /path/to/project.git
    
  3. যদি আপনি কমপক্ষে প্রথম কয়েকটি অক্ষর জানেন তবে bbbbbbbব্যবহার করুন git show bbbbbbএবং / অথবা git log bbbbbbসম্পূর্ণ কমিট হ্যাশটি সন্ধান করতে। (আপনার যদি কেবল হ্যাশ দরকার হয় git rev-parse bbbbbbতবে এটিও কাজ করবে তবে চেক করা সবসময় ভাল))

    আপনি মান জানা না থাকলে এ সব , চালানো git fsckএবং আপনি "আনত করে" একটি তালিকা পাওয়া উচিত। প্রতিটি কমিট ব্যবহার করে পরীক্ষা করুন git show <hash>এবং git log <hash>যতক্ষণ না আপনি সঠিকটি খুঁজে পান।

  4. শাখার উল্লেখগুলি আপডেট করুন:

    echo aaaaaaaaaaaaaaa.... > refs/heads/master
    echo bbbbbbbbbbbbbbb.... > refs/heads/foo
    
  5. আপনি সঠিক শাখা পুনরুদ্ধার করেছেন তা নিশ্চিত করুন git log masterএবং ব্যবহার করুন git log foo


ধন্যবাদ, আমি ঝোলা শাখাটি দিয়ে সংরক্ষণ করেছিলাম git fsck
Xiè Jìléi

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