কীভাবে কোনও রিবেস রোলব্যাক করবেন তা গিট


104

গিট-এ, আপনি যদি এতে সন্তুষ্ট না হন তবে কীভাবে আপনি রিবেস রোলব্যাক করবেন?

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


4
গিট রিবেস --abort
অলিবিয়াজ

4
"ব্যর্থ" বলতে কী বোঝ? আপনি কি রিবেসটি সম্পূর্ণ করেছেন, এবং ফলাফলগুলি আপনি পছন্দ করেন না? অথবা আপনি দ্বন্দ্বগুলি আঘাত করেছেন এবং মাঝপথে রিবেস বন্ধ করতে চান? আমি প্রাক্তন হিসাবে ধরে নিয়েছি, যেহেতু আপনি একটি বিরোধযুক্ত, অসম্পূর্ণ রিবাজকে ঠেলাতে পারবেন না , তবে আমি জিজ্ঞাসা করছি কারণ তারা দুটি পৃথক প্রশ্ন।
এডওয়ার্ড থমসন

হ্যাঁ, প্রাক্তন ধন্যবাদ
ব্যবহারকারী 1615666

উত্তর:


214

রিবেস শুরু হওয়ার আগে প্রথম ক্রিয়াটি খুঁজে পেতে আপনি রিফ্লগটি ব্যবহার করতে পারেন এবং তারপরে পুনরায় সেট করুন - এটিকে আবার ফিরিয়ে দিন। যেমন

$ git reflog

b710729 HEAD@{0}: rebase: some commit
5ad7c1c HEAD@{1}: rebase: another commit
deafcbf HEAD@{2}: checkout: moving from master to my-branch
...

$ git reset HEAD@{2} --hard

রিবেস শুরু হওয়ার আগে এখন আপনার ফিরে আসা উচিত।

পুনরায় সেট করার জন্য সঠিক জায়গাটি সন্ধান করার জন্য, আপনি কেবলমাত্র "রিবেস" দিয়ে শুরু না হওয়া শীর্ষের নিকটস্থ প্রবেশিকাটি বেছে নিন ।

বিকল্প পথ বা পন্থা

রি-বেসের ফলে হয়, তাহলে শুধু আপনি ডালে করেছ, IE আপনি কোন unpushed বদ্ধ পরিকর / পরিবর্তন - তারপর আপনি শুধু সঙ্গে স্থানীয় শাখা মুছতে পারবে git branch -Dএবং তারপর আবার এটি চেক আউট:

$ git checkout my-branch
$ git rebase master
// not happy with result
$ git checkout master
$ git branch -D my-branch
$ git checkout my-branch

বা একই প্রভাবের জন্য, আপনি মূল শাখায় পুনরায় সেট করতে পারেন:

$ git reset --hard origin/my-branch

আপনি যদি অন্য চাপানো কমিটগুলি করার সময় এটি করেন, তবে আপনি সেগুলি হারাবেন। সেক্ষেত্রে আপনি যেখানে প্রতিশ্রুতিবদ্ধ করেছিলেন সেগুলি রিফ্লগ এন্ট্রিতে ফিরে যেতে কেবল উপরের রেফ্লগ পদ্ধতির ব্যবহার করুন।


11
অন্য একটি সহজ শর্টকাট: রিবাজে ORIG_HEADশাখার মূল হ্যাশ মানটিকে পুনরায় সেট করা হবে to সুতরাং এর জন্য 2 নম্বর সন্ধান করার পরিবর্তে HEAD@{2}আপনি কেবল ব্যবহার করতে পারেন ORIG_HEAD... তবে কেবলORIG_HEAD অব্যবহৃত থাকলেই । একগুচ্ছ গিট কমান্ড সেট করে দেয় (রিবাজে, এম, রিসেট, এবং একত্রীকরণ, বিভিন্ন পরিস্থিতিতে)।
torek

4
ধন্যবাদ জনাব!
এলেক

4
ধন্যবাদ আমার সোর্স কোড ফিরে .... পরে এই $ Git রিসেট মাথা ব্যবহার @ {2} --hard
রেজা rahmad

কেবলমাত্র স্থানীয় শাখাটি মুছুন এবং আবার এটিকে টানানোর পরামর্শ দেওয়ার জন্য আমার আপটোট পান!
কুইলক্ল্যাশবিত

4
এটি জীবন রক্ষাকারী। ধন্যবাদ @ রবি
নেলসন কাতাল

42

রিবেস পুরানো অবস্থার ব্যাকআপ রাখে ORIG_HEAD
সুতরাং আপনি চালিয়ে শেষ রিবেসটি ফিরিয়ে আনতে পারেন:

git reset --hard ORIG_HEAD

4
আপনি কি জানেন যে ট্যাগটি কোথায় নথিভুক্ত করা হয়েছে?
বেন এস

এর কিছুটা খারাপ দিক নাকি এটি নতুন বৈশিষ্ট্য? এটি একটি রিফ্লগের মাধ্যমে পাল্টানোর চেয়ে অনেক সহজ মনে হয়।
1252748

এটা নতুন নয়। তবে আপনি সাধারণত এটি রিবেসের ঠিক পরে ব্যবহার করতে পারেন, বেশ কয়েকটি রিবায়েস ইত্যাদির পরেও পূর্বপরিকল্পিতভাবে ফিরে যেতে পারবেন না these এই জটিল পরিস্থিতিতে আপনি রিলগের জিনিসগুলির সন্ধান করতে চাইতেন, তবে কেবল "উফ, আমি কী করলাম? আমি কীভাবে ফিরে যেতে পারি?" এখনই?" এটা ঠিক কাজ করে।
মেলিগি
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.