"গিট রিবেস - চালিয়ে যাওয়া" ভুলে গেছেন এবং "গিট কমিট" করেছেন। কিভাবে ঠিক করবো?


112

আমি গিটকে কোড রিবাইস করছিলাম, আমি কিছু সংহত বিবাদ পেয়েছি। আমি বিবাদগুলি সমাধান করেছি এবং করেছি:

git add

এই মুহুর্তে আমি করতে ভুলে গেছি:

git rebase --continue

আমি কোডিং চালিয়ে গিয়েছিলাম এবং করেছি:

git commit

পরিবর্তনের জন্য। এখন আমি চালু "no branch"এবং করতে পারি না:

git rebase --continue 

আমি কিভাবে এটা ঠিক করব?


# বর্তমানে কোন শাখায় নেই। কমিটমেন্ট করার কিছুই নেই (ওয়ার্কিং ডিরেক্টরী ক্লিন)
অভিলাশ

উত্তর:


5

সম্পাদনা : নীচের উত্তরটি দেখুন এবং দেখুন এটি আপনার পক্ষে সহজ সমাধান কিনা। https://stackoverflow.com/a/12163247/493106


আমাকে এটি চেষ্টা করে দেখতে হবে, তবে আমি মনে করি এটিই আমি করব:

  1. আপনার সর্বশেষ প্রতিশ্রুতি ট্যাগ করুন (বা কেবল এটির SHA1 কোথাও লিখুন যাতে আপনি এটি হারাবেন না): git tag temp
  2. git rebase --abort
  3. রিবেস আবার করুন। আপনাকে আবার মার্জটি সমাধান করতে হবে। :(
  4. git rebase --continue
  5. git cherry-pick temp

এটির সাথে সমস্যাটি হ'ল আপনার tempপ্রতিশ্রুতিতে সম্ভবত মার্জটির রেজোলিউশন এবং নতুন কোড উভয়ই রয়েছে। সুতরাং এটি মুশকিল হতে পারে তবে আমি এটি চেষ্টা করে দেখব এবং এটি কাজ করে কিনা।


হয় আপনি @ ম্যাট্রিক্সফ্রোগের মত ট্যাগ করতে পারেন বা আপনি এটি প্যাচ হিসাবে সংরক্ষণ করতে পারেন। তারপরে রিবেস বাতিল করতে হবে। রেপো এমন অবস্থায় রয়েছে তা নিশ্চিত করার জন্য স্থিতিটি পরীক্ষা করুন যা আপনারা জানেন যে কোনও সমস্যা ছিল না এবং তারপরে আনতে এবং পুনরায় চালু করতে পারেন।
ইয়াসৌসার

17
এটি করবেন না। অনেক সহজ / পরিষ্কার উপায়ে নীচে কিরিকাজার উত্তর দেখুন। চেরি-বাছাই এবং দ্বন্দ্বগুলি দ্বিতীয়বার সমাধানের সাথে গণ্ডগোল করবেন না।
tandrewnichols

4
@ অভিলাষ দয়া করে কিরিকজার উত্তর গ্রহণ করুন। আমি (যেমনটি ট্যানড্রিনিচলস করেছি) এটি করেছি এবং আরও একটি সহজ উপায় ছিল (এবং ইন্টারনেটের উত্তরটিতে 4x আপভোজন রয়েছে বলে সম্মত বলে মনে হয়)।
ডেভিড ডরিয়া

এটি এখন 10x upvotes ... এছাড়াও, আপনার দ্বন্দ্বের রেজোলিউশনগুলি স্মরণ করতে গিট রিয়ার ব্যবহার করুন (দরকারী, আপনি যদি কখনও কখনও খারাপ রেজোলিউশন না করেন যা আপনি এটি মনে রাখতে চান না)।
আজাক্স

216

শুধু কর git reset --soft HEAD^। এটি হেড পয়েন্টারটিকে তার পিতামাতার কাছে নিয়ে যায় তবে কাজের গাছ রাখে এবং সূচিতে মার্জ পরিবর্তন যুক্ত করে। সুতরাং আপনি git rebase --continueআগের মতো প্রতারণা চালিয়ে যেতে পারেন ।


1
এটি সম্পূর্ণরূপে কাজ করেছে এবং আমি প্রথমবার - সাফ্টের জন্য কোনও ব্যবহার খুঁজে পেয়েছি। এটি কীভাবে কাজ করে তা জানতে পেরে ধন্যবাদ, ধন্যবাদ!
মিমোকনি

1
আমি আশা করি লোকেরা এই উত্তরটিতে সমস্ত আপলোড দেখবে এবং এখানে প্রস্তাবিত অনুসৃত হবে!
রাঘু

1
আমি যা ভেবেছিলাম তা হ'ল (তবে দুর্ঘটনাক্রমে শক্ত হয়ে যেতে পারে)। যদিও রিয়েজের সময় হেড আপডেট হচ্ছে কিনা তা নিশ্চিত ছিল না। নিশ্চিত করার জন্য আপনাকে ধন্যবাদ! উপরের মাথা ব্যাথার সাথে গোলযোগের আগে আমি আরও খুশি হয়েছি glad
দিজকেশিউজ

আমি এখানে একটি লিঙ্ক রাখার জন্য গৃহীত উত্তরটি সম্পাদনা করেছি- উপরের দিকনির্দেশগুলি অনুসরণ করার পরে আমি এই উত্তরটি দেখতে পাইনি।
xaxxon

0

আমি একই সমস্যা পেয়েছি এবং এটি আরও খারাপ করার জন্য, আমি তিনটি প্রতিশ্রুতি প্রত্যাখ্যান করছি, এবং দ্বিতীয় প্রতিশ্রুতিতে বিরোধগুলি সমাধান করার পরে, আমি "রিবেস - নিয়ন্ত্রণ" এর পরিবর্তে "প্রতিশ্রুতিবদ্ধ" হয়েছি।

ফলস্বরূপ আমার এই ছিল গিট রিফ্লোগ ছিল

আমি যখন কিরিকাজার সমাধানটি প্রয়োগ করেছি তখন আমি তৃতীয় প্রতিশ্রুতিটি ফিরিয়ে দিয়েছি, দ্বিতীয়টি নয়, যা সমস্যাযুক্ত ছিল ..

যেমন আপনি দেখতে পাচ্ছেন, রিবেট রিমোটগুলি / উত্স / মাস্টার শাখা থেকে একটি চেকআউট দ্বারা শুরু হয় এবং তারপরে আমার তিনটি কমিট প্রয়োগ করে যা রিফ্লগে তিনটি পূর্ববর্তী অপারেশন (চেকআউটের আগে) হিসাবে প্রদর্শিত হবে।

তারপরে, আপনি যদি একটি পরিষ্কার বেস থেকে পুনরায় চালু করতে চান তবে রিবেসের আগে, রিবেস অপারেশনটির চেকআউটের ঠিক আগে আপনি হার্ড হ্যাশটিতে পুনরায় সেট করতে পারেন। আমার ক্ষেত্রে (ছবিটি দেখুন):

git reset --hard 859ed3c

তারপরে আপনি একটি নতুন শুরু করতে পারেন git rebase


0

আমি গিটকে রিবেসড, স্থির বিবাদ, সংঘাতের সাথে গিট সংযুক্ত ফাইল এবং (ভুলভাবে) প্রতিশ্রুতিবদ্ধ করেছি।

আমি প্রদত্ত সমাধান git reset --soft HEAD^এবং git reset --hardসমাধানগুলি চেষ্টা করেছিলাম , তবে উভয়ই আমার পক্ষে কাজ করেনি।

তবে, সবেমাত্র git rebase --abortকাজ করেছেন: একটি পরিষ্কার ওয়ার্কিং ট্রি দিয়ে রিবেস শুরুর আগে আমাকে আবার নিয়ে গেছে।

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