আমি একটি দূরবর্তী নন-বেয়ার "মেইন" রেপো সেট আপ করেছি এবং এটি আমার কম্পিউটারে ক্লোন করেছি। আমি কিছু স্থানীয় পরিবর্তন করেছি, আমার স্থানীয় সংগ্রহস্থল আপডেট করেছি এবং পরিবর্তনগুলি আমার দূরবর্তী রেপোতে ঠেলে দিয়েছি। বিষয়গুলি এখনও পর্যন্ত ঠিক ছিল।
এখন, আমি দূরবর্তী রেপোতে কিছু পরিবর্তন করতে হয়েছিল। তারপরে আমি আমার স্থানীয় রেপোতে কিছু পরিবর্তন করেছি। আমি বুঝতে পেরেছিলাম যে রিমোট রেপোতে পরিবর্তন দরকার নেই। তাই আমি git pushআমার স্থানীয় রেপো থেকে আমার দূরবর্তী রেপোতে চেষ্টা করেছি, তবে আমি এর মতো একটি ত্রুটি পেয়েছি:
ইতিহাস হারিয়ে যাওয়ার হাত থেকে রক্ষা পেতে, দ্রুত-অগ্রসর হওয়া আপডেটগুলি প্রত্যাখ্যান করা হয়েছিল আবার চাপ দেওয়ার আগে দূরবর্তী পরিবর্তনগুলি মার্জ করুন। বিশদটির জন্য 'ফাস্ট-ফরওয়ার্ডগুলি সম্পর্কে নোট' বিভাগটি
git push --helpদেখুন।
আমি ভেবেছিলাম সম্ভবত এ
git push --force
আমার স্থানীয় অনুলিপিটিকে দূরবর্তী অঞ্চলে পরিবর্তনগুলিতে চাপ দিতে এবং এটি একইরকম করতে বাধ্য করবে। এটি আপডেটটিকে জোর করে , কিন্তু আমি যখন রিমোট রেপোতে ফিরে যাই এবং কোন অঙ্গীকার করি তখন আমি লক্ষ্য করব যে ফাইলগুলিতে পুরানো পরিবর্তন রয়েছে (মূল রিমোট রেপো যা পূর্বে ছিল) contain
যেমন আমি উত্তরের একটিতে মন্তব্যে উল্লেখ করেছি :
[আমি] জোর করে চেষ্টা করেছি, কিন্তু পরিবর্তনগুলি সংরক্ষণ করতে মাস্টার সার্ভারে ফিরে যাওয়ার সময়, আমি পুরানো মঞ্চস্থ হয়ে উঠি। সুতরাং, আমি যখন প্রতিশ্রুতিবদ্ধ তখন একই হয় না। এবং যখন আমি আবার গিট পুশ ব্যবহার করার চেষ্টা করি তখন আমি একই ত্রুটি পাই।
আমি কীভাবে এই সমস্যাটি সমাধান করতে পারি?
git push --forceঅবশ্যই ধাক্কা দেওয়ার জন্য আরও একটি বৈধ উপায়, এবং শাখাগুলি ঠিক git push origin master --forceতেমনই গিটের ডিফল্টর সাথে ধাক্কা দেবে push.default config settings, যদিও শাখাগুলি নির্দিষ্টভাবে 2.0 এর পরে বনাম 2.0 এর আগে গিট সংস্করণগুলির মধ্যে পৃথক হয়।
git push --forceএই দিনগুলিতে দুর্দান্ত কাজ করে,
git push --force-with-leaseআরও ভাল কাজ করে :), এটি আপনার প্রত্যাশা করা রাজ্য না হলে এটি কোনও শাখা আপডেট করতে অস্বীকার করবে। (দেখুন ডেভেলপার.এলটিশিয়ান.
git push -forceসাবধানে আরো ।