আমি কেন একটি শূন্য প্রতিশ্রুতি ঠেলাতে পারি না?


35
  git commit --amend --allow-empty

তারপর

  git push origin master

গিট বলেছে যে

! [rejected]        master -> master (non-fast-forward)
error: failed to push some refs to 'remoteurl'
To prevent you from losing history, non-fast-forward updates were rejected
Merge the remote changes (e.g. 'git pull') before pushing again.  See the
'Note about fast-forwards' section of 'git push --help' for details.

কেন? কিভাবে এটি ঠিক করবেন?

git 

উত্তর:


56

সমস্যাটি এমন নয় যে আপনি একটি খালি প্রতিশ্রুতি দিচ্ছেন।
এটা একটা ঠেলাঠেলি সম্পর্কে বিভিন্ন ইতিমধ্যেই ধাক্কা কমিট চেয়ে কমিট (একটি পৃথক SHA1 এ সঙ্গে এক)।
এটিই যা git commit --amendকরে: এটি সর্বশেষ প্রতিশ্রুতি সংশোধন করেছে, এটি একটি নতুন তৈরি করে না।

এর অর্থ আপনি ইতিমধ্যে ক্লোন করেছেন এমন একের চেয়ে আপনি আলাদা ইতিহাসকে চাপ দিচ্ছেন ।
যদি আপনি নিশ্চিত হন যে কোনও সমস্যা হবে না, আপনার চাপটি চাপ দিতে হবে:

git push -f origin master

আপনার করা উচিত ছিল:

git commit --allow-empty

আপনি একটি নতুন (খালি) প্রতিশ্রুতি তৈরি করেছেন, যা আপনি কোনও সমস্যা ছাড়াই ঠেলাঠেলি করতে পারতেন।


5

আপনি যদি গিথুব এ টানুন অনুরোধ তৈরি করতে চান। আপনি পারেন:

git commit --allow-empty -m "make pull request"

তারপরে কোনও পরিবর্তন ছাড়াই টানুন অনুরোধ তৈরি করুন।


3

গৃহীত উত্তরটি পরিষ্কার করতে, যেহেতু আমার মন্তব্য করার মতো খ্যাতি নেই:

আপনি যখন ব্যবহার

git commit --amend

এটি একটি নতুন অঙ্গীকার তৈরি করে । যাইহোক, এটি এটি বর্তমান প্রতিশ্রুতিতে যুক্ত হয় না, এটি এটি বর্তমান প্রতিশ্রুতির পিতামাতার সাথে সংযুক্ত করে। দৃশ্যত, এটি কাঁটাচামড়ার মতো লাগবে।

  O (old commit)
 /
O-O (amended commit)

গিট এটিকে দূর থেকে দূরত্ব হিসাবে ব্যাখ্যা করে। এ কারণেই এটি আপনাকে জোর করে চাপ দেওয়ার অনুমতি দেয় না।


0

নিশ্চিত করুন যে আপনি যে প্রত্যন্ত শাখায় চাপ দেওয়ার চেষ্টা করছেন সেটি বর্তমানে পরীক্ষা করা হয়নি out আমি আমার সার্ভারগুলির মধ্যে একবারে একটি গিট সংগ্রহস্থল তৈরি করেছি এবং আমি কেন এটিতে চাপ দিতে পারি না তা বুঝতে পারি না। সমস্যা সমাধানের এক দিন বা তার পরে, আমি জানতে পেরেছিলাম যে সার্ভারের সংগ্রহস্থলের চেক আউট করার সময় আমি সংগ্রহস্থলটিতে (বা আমি যে শাখাটি চেয়েছিলাম) তে চাপ দিতে পারি না। সুতরাং, আমি কেবলমাত্র একটি নতুন শাখা তৈরি করেছি যা আমি সার্ভারে পরিবর্তনগুলি সম্পাদন করার পরে চেকআউট করি এবং আমি সার্ভারে চাপ দিতে পারি। এটি আপনার সমস্যা নাও হতে পারে তবে আমার সার্ভারে খালি গিটের দিকে ঠেলাঠেলি করার সময় আমার যখন সমস্যা হয়েছিল তখন আমি এটির মতো একটি ত্রুটি পাচ্ছিলাম।

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