ধরে নিই যে আপনার শাখাটি masterএখানে এবং দূরবর্তীভাবে উভয়ই বলা হয় এবং আপনার রিমোটকে বলা originযেতে পারে আপনি এটি করতে পারেন:
git reset --hard <commit-hash>
git push -f origin master
তবে অন্য কেউ যদি আপনার দূরবর্তী সংগ্রহস্থলের সাথে কাজ করে এবং আপনার পরিবর্তনগুলি টানতে থাকে তবে আপনার এটি করা এড়ানো উচিত। সেক্ষেত্রে আপনি যে কমিটগুলি চান না তা প্রত্যাবর্তন করা ভাল , তারপরে স্বাভাবিক হিসাবে চাপ দিন।
আপডেট: আপনি নীচে ব্যাখ্যা করেছেন যে আপনি যে পরিবর্তনগুলি ধাক্কা দিয়েছিলেন তা অন্য লোকেরা টেনে নিয়েছে, সুতরাং একটি নতুন প্রতিশ্রুতি তৈরি করা ভাল যা এই সমস্ত পরিবর্তনগুলিকে উল্টে দেয় । জাকুব নারাবস্কির এই উত্তরে এটি করার জন্য আপনার বিকল্পগুলির একটি দুর্দান্ত ব্যাখ্যা রয়েছে । কোনটি সবচেয়ে সুবিধাজনক তা নির্ভর করে আপনি কতগুলি প্রতিশ্রুতি ফিরিয়ে নিতে চান এবং কোন পদ্ধতিটি আপনার পক্ষে সর্বাধিক অর্থবোধ করে।
যেহেতু আপনার প্রশ্ন থেকে এটি স্পষ্ট হয়েছে যে আপনি ইতিমধ্যে git reset --hardআপনার masterশাখাটি পুনরায় সেট করতে ব্যবহার করেছেন git reset --hard ORIG_HEAD, আপনার শাখাটি যেখানে আগে ছিল সেখানে ফিরিয়ে নিয়ে যেতে শুরু করার প্রয়োজন হতে পারে । (সর্বদা হিসাবে সঙ্গে git reset --hard, নিশ্চিত করুন যে git statusপরিচ্ছন্ন হয়, যে আপনি সঠিক শাখা আছি এবং যে আপনার হয় সচেতন git reflogযেমন দৃশ্যত হারিয়ে করে পুনরুদ্ধার করতে একটি হাতিয়ার।) এছাড়াও, আপনি এখানে পরীক্ষা করা উচিত ORIG_HEADপয়েন্ট অধিকার কমিট সঙ্গে git show ORIG_HEAD।
সমস্যা সমাধান:
যদি আপনি " ! [রিমোট প্রত্যাখ্যান] a60f7d85 -> মাস্টার (প্রাক রিসিভ হুক প্রত্যাখ্যানিত) " এর মতো কোনও বার্তা পান তবে
তারপরে আপনাকে নির্দিষ্ট শাখার জন্য শাখার ইতিহাস পুনরায় লেখার অনুমতি দিতে হবে। বিটবকেটে উদাহরণস্বরূপ এটি বলেছে "শাখার ইতিহাসের পুনর্লিখন অনুমোদিত নয়"। একটি চেকবক্স রয়েছে Allow rewriting branch historyযা আপনাকে যাচাই করতে হবে।
origin/masterঅন্য ব্যবহারকারীরা আপনাকে টেনে এনে ধাক্কা দেয়নি? জনসাধারণের (যেমন অ-স্থানীয়) সংগ্রহস্থলের ইতিহাসের পরিবর্তন হ'ল এমন কিছু যা আপনি সর্বদা এড়াতে চান।