আপনি যদি নিশ্চিত হন যে কেউই আপনার গিট সংগ্রহস্থলে পরিবর্তন করেনি এবং আপনি সর্বশেষতম সংস্করণে কাজ করছেন, git pullআপনার হৃদয়ে সমাধান হিসাবে তা বোঝায় না ...
তাহলে সম্ভবত এটি ঘটেছিল, আপনি ব্যবহার করেছেন git commit --amend
এটি আপনাকে সম্পূর্ণ নতুন স্ন্যাপশট হিসাবে প্রতিশ্রুতি না দিয়ে পূর্বের প্রতিশ্রুতিবদ্ধতার সাথে মঞ্চস্থ পরিবর্তনগুলি একত্রিত করতে দেয় lets এটি পূর্বের প্রতিশ্রুতি বার্তাটির স্ন্যাপশট পরিবর্তন না করে কেবল সম্পাদনা করতেও ব্যবহার করা যেতে পারে।
আটলাসিয়ান টিউটোরিয়াল: ইতিহাস রাইটিং
তবে, git commit --amend আপনি যদি ইতিমধ্যে গিটহাবের কাছে প্রতিশ্রুতিবদ্ধ হন তবে এটি সম্পাদন করার পরামর্শ দেওয়া হয় না , কারণ এটি "সংশোধন করা সর্বাধিক সাম্প্রতিক প্রতিশ্রুতি পরিবর্তন করে না — এটি সম্পূর্ণরূপে প্রতিস্থাপন করে it গিটের কাছে এটি ব্র্যান্ডের নতুন প্রতিশ্রুতি মত দেখাবে" যার অর্থ আপনার গিটহাবের অন্যান্য বিকাশকারী, ইতিহাস দেখতে এ-> বি-> সি এর মতো লাগে তবে আপনার কাছে এটি এ-> বি-> ডি এর মতো দেখাচ্ছে, যদি গিটহাব আপনাকে ছেড়ে দেয় push, অন্য সবাইকে ম্যানুয়ালি তাদের ইতিহাস ঠিক করতে হবে
এই কারণেই আপনি ত্রুটি বার্তাটি পান ! [rejected] master -> master (non-fast-forward), যদি আপনি জানেন যে কেউ আপনার সর্বশেষ পরিবর্তনটি টানছে না git push --force, আপনি এটি করতে পারেন , এটি আপনার পাবলিক রেপোতে গিট ইতিহাসকে পরিবর্তন করবে । অন্যথায় ... আপনি পারফর্ম করতে পারেন git pull, তবে আমি বিশ্বাস করি git commit --amendএটির ফলাফল একই রকম হবে আপনি যা করেননি , এটি একটি নতুন প্রতিশ্রুতি তৈরি করবে (যেমন: গিট টানার পরে গিট ইতিহাস: এ-> বি-> সি-> ডি )
আরও বিশদের জন্য: কীভাবে আপনার সর্বশেষ প্রতিশ্রুতি পরিবর্তন করবেন