গিট মার্জটি বাতিল করুন


119

গিটকে ভিসিএস হিসাবে ব্যবহার করে আমি একটি প্রকল্পে কাজ করছি। আমি xyzমাস্টারের মেইনলাইন শাখা থেকে একটি শাখা কাটা পেয়েছি । কিছুক্ষণ কাজ করার পরে, আমি আমার কোডটি প্রতিশ্রুতিবদ্ধ করেছি এবং শাখার মূল লাইনটি টানলাম।

টান ভাল ছিল। আমি তখন কোডটি মাস্টারের সাথে একীভূত করেছি। সংযুক্তির পরে, নির্দিষ্ট ফাইলগুলিতে সমস্যা ছিল। মার্জ করার পরে আমি কোডটি প্রতিশ্রুতিবদ্ধ হইনি। কেউ দয়া করে আমাকে কীভাবে এই মার্জটি বাতিল করতে এবং আমার শাখাটি যেখানে আমি বর্তমানে কাজ করছি সেখানে রাজ্যে যেখানে আমি এটি সংশ্লেষ করার আগে যেখানে ছিলাম সেখানে আনতে পারি কিনা দয়া করে গাইড করতে পারেন?



আপনি কি কেবল শাখার পূর্ববর্তী অঙ্গীকার পুনরুদ্ধার করতে পারবেন না?
ওটিপং ওয়াংসাকুলদেজ


1
দ্রষ্টব্য যে গিট-এ, revertএমন একটি কমান্ডের নাম যা পূর্বের প্রতিশ্রুতিতে পরিবর্তনগুলি পরিবর্তন করে নতুন প্রতিশ্রুতি তৈরি করে , তাই সম্ভবত আপনি এখানে যে শব্দটি সন্ধান করছেন তা নয়। আমি আপনার প্রশ্নটি স্পষ্ট করতে সম্পাদনা করেছি ।
স্কট ওয়েলডন

উত্তর:


296

যতক্ষণ আপনি প্রতিশ্রুতিবদ্ধ না হন ততক্ষণ আপনি টাইপ করতে পারেন

git merge --abort

কমান্ড লাইন যেমন পরামর্শ দিয়েছে।


4
এটি চেষ্টা করার সময় আমি এই বার্তাটি পেয়েছি: error: Entry 'MyFile.java' not uptodate. Cannot merge. fatal: Could not reset index file to revision 'HEAD'.
এসএমবিগস

1
@ আহমাদ গিট জায়গায় অনির্দিষ্ট পরিবর্তন (ইতিমধ্যে ট্র্যাক করা ফাইলগুলির) সাথে একত্রীকরণ শুরু করে না। গিট যা জানে না তা রক্ষা করতে পারে না।
টিমোথি ট্রকল

হ্যাঁ আপনি আমার কোডটি হারিয়ে এটি শিখেছি। এখানে আমার সমস্যার বিস্তারিত, আমি কীভাবে সমস্যায় পড়েছি। stackoverflow.com/questions/55474092/how-to-undo-the-git-abort
আহমদ

23

যদি আপনি মার্জ সংঘাতের সময় "গিট স্ট্যাটাস" করেন তবে প্রথম জিনিসটি গিটটি আপনাকে দেখায় যে কীভাবে মার্জটি বাতিল করতে হয়।

একীভূত দ্বন্দ্ব থাকার সময় গিটের স্থিতির আউটপুট


ভাল লাগল, এটি আমাকে পরামর্শ দিয়েছে git reset HEAD <file>যা গিট এক্সটেনশন উত্স নিয়ন্ত্রণ থেকে কার্যকরভাবে "সংশ্লেষ" সঙ্কুচিত হতে পারে => তবে আমি হয় বিরোধগুলি সমাধান করতে পারি বা জিআইটি এক্সটেনশান তালিকায় আমার পরিবর্তনগুলি ফিরিয়ে দিতে পারি :)
jave.web

6

সত্য বলা যেতে পারে যে ওয়েবে ইতিমধ্যে কীভাবে এটি করা যায় তা ব্যাখ্যা করার জন্য অনেকগুলি, প্রচুর সংস্থান রয়েছে:

গিট: কমিটকে রিভার্স-মার্জ করবেন কীভাবে?

গিট: কমিটকে রিভার্স-মার্জ করবেন কীভাবে?

গিটের ব্লগ থেকে মার্জগুলি পূর্বাবস্থায় ফেরানো হচ্ছে (আর্কাইভ.অর্গের ওয়েব্যাক মেশিন থেকে প্রাপ্ত)

সুতরাং আমি অনুমান করি যে আমি কেবল এর কয়েকটি সংক্ষিপ্ত করব:

  1. git revert <merge commit hash>
    এটি আপনাকে একীভূত করতে অস্বীকার করে একটি অতিরিক্ত "রিভার্ট" কমিট তৈরি করে

  2. git reset --hard <commit hash *before* the merge>
    আপনি একীভূত হওয়ার আগে এই পুনরায় সেট ইতিহাস। যদি আপনি মার্জ করার পরে কমিট করে থাকেন তবে আপনার পরে cherry-pickতাদের এগুলি করা দরকার ।

তবে সত্যি কথা বলতে এখানে এই গাইডটি আমি ডায়াগ্রামের সাথে ব্যাখ্যা করতে পারে তার চেয়ে ভাল better :)


1
লিঙ্কটি গেছে। দীর্ঘশ্বাস.
এসএমবিগস

@ স্কটবিগস আমার মনে হয় তারা এটিকে git-scm.com/book/en/v2/… তে সরিয়ে নিয়েছে । ডেনিস, আপনি যদি এটি পড়ে থাকেন, আপনি কি পরীক্ষা করতে পারবেন? এবং যদি এটি সত্যিই একই হয় তবে দয়া করে আপনার উত্তরটিতে লিঙ্কটি আপডেট করতে পারেন? ধন্যবাদ!
ফ্যাবিও মনিকাকে
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.