সম্পূর্ণভাবে একটি রিবেস বাতিল করুন


255

আমি এটির মতো একটি রিবেস সম্পাদন করেছি:

git rebase --onto master new_background_processing export_background_processing

এটি আমার যা ইচ্ছা তা করেনি, তাই আমি একটি রিসেট সম্পাদন করেছি:

git reset --hard HEAD@{1}

আমি আমার শাখাটি যে অবস্থায় ছিল তা ফিরে পেয়েছি, তবে আমি গিট স্ট্যাটাস টাইপ করার সময় এই বার্তাটি পেয়েছি:

# You are currently rebasing branch 'export_background_processing' on 'e378641'.

কীভাবে আমি সেই রিবেস পুরোপুরি বাতিল করব? নিশ্চিত না যে প্রতি সে সেটির অর্থ কী।


16
গিট রিবেস --abort
মিশা

6
গিট 2.12 এখন সরবরাহ করে git rebase --quit। দেখুন নিচের আমার উত্তর
VonC

উত্তর:


406

ব্যবহার git rebase --abort। থেকে অফিসিয়াল লিনাক্স কার্নেল ডকুমেন্টেশনgit rebase :

git rebase --continue | --skip | --abort | --edit-todo

5
আমার ক্ষেত্রে git rebase --abortকাজটি হয়নি, কারণ আমি কিছু গণ্ডগোল করেছি। আমি শুধুমাত্র নিম্নলিখিত ত্রুটির করেছেন: error: could not read '.git/rebase-apply/head-name': directory of file does not existgit rebase --quit বর্ণনা নিচে আমার সমস্যার সমাধান।
কাউট

84

অতীতে রিবেসের ক্ষেত্রে আপনি যথাযথভাবে বাতিল হয়ে যাননি, আপনি এখন (গিট 2.12, কিউ 1 2017) git rebase --quit

দেখুন কমিট 9512177 দ্বারা (12 নভেম্বর 2016) গান Nguyễn গান Thái আরো Ngọc গান Duy ( pclouds)(দ্বারা একীভূত junio সি Hamano - gitster- মধ্যে কমিট 06cd5a1 , 19 ডিসেম্বর 2016)

rebase: --quitক্লিনআপ রিবেসে যুক্ত করুন, অন্য সব কিছু ছেড়ে দিন

এমন কিছু অনুষ্ঠান রয়েছে যখন আপনি অগ্রগতি রিবেসটি বাতিল করতে এবং অন্য কিছু করতে যাওয়ার সিদ্ধান্ত নেন তবে আপনি প্রথমে করতে ভুলে যানgit rebase --abortবা রিবেসটি এত দিন ধরে চলছে যা আপনি ভুলে গিয়েছিলেন। আপনি যখন বুঝতে পারবেন যে (উদাহরণস্বরূপ অন্য রিবেস শুরু করে) আপনার পদক্ষেপগুলি সরিয়ে নিতে ইতিমধ্যে খুব দেরি হয়ে গেছে। সমাধানটি সাধারণত হয়

rm -r .git/<some rebase dir>

এবং আপনার জীবন দিয়ে চালিয়ে যান।
তবে এর জন্য দুটি পৃথক ডিরেক্টরি থাকতে পারে <some rebase dir>(এবং এটি পুনরায় কীভাবে কাজ করে সে সম্পর্কে অবশ্যই কিছু জ্ঞানের প্রয়োজন হয়) এবং .gitআপনি শীর্ষ-দিরের সাথে না থাকলে বা কোনও লিঙ্কযুক্ত ওয়ার্কট্রিতে " " অংশটি আরও দীর্ঘ হতে পারে। এবং " rm -r" এটি করা খুব বিপজ্জনক .git, সেখানে কোনও ভুলের ফলে অবজেক্ট ডাটাবেস বা অন্যান্য গুরুত্বপূর্ণ ডেটা ধ্বংস হতে পারে।

git rebase --quitএই ব্যবহারের ক্ষেত্রে " " সরবরাহ করুন , এটির একটি নজির নকল করে " git cherry-pick --quit"।


গিট 2.27 (কিউ 22020) এর আগে, " git merge --autostash" প্রাথমিক নোংরা অবস্থা বজায় রাখতে " " দ্বারা নির্মিত স্ট্যাশ এন্ট্রি ভুল " git rebase --quit" দ্বারা ভুলভাবে বাতিল করা হয়েছিল , যা সংশোধন করা হয়েছে।

দেখুন কমিট 9b2df3e (28 এপ্রিল 2020) দ্বারা ডেন্টন লিউ ( Denton-L)
(দ্বারা একীভূত junio সি Hamano - gitster- মধ্যে 3afdeef কমিট , 29 এপ্রিল 2020)

rebase: অটোস্ট্যাশ এন্ট্রি চালু stash reflogকরুন--quit

সাইন-অফ-বাই: ডেন্টন লিউ

ইন a03b55530a ( " merge: শিক্ষা --autostash বিকল্প", 2020-04-07, গীত v2.27.0 - একত্রীকরণ তালিকাভুক্ত ব্যাচ # 5 ), --autostashবিকল্পের জন্য চালু করা হয় git merge

(" ক্যান" git pull"স্বয়ংক্রিয়ভাবে স্ট্যাশ এবং মুলতুবি থাকা পরিবর্তনগুলি পপ করতে পারেন ? ")

উল্লেখযোগ্যভাবে, যখন git merge --quitঅটোস্ট্যাশ এন্ট্রি উপস্থিত থাকে তখন এটি স্ট্যাশ রিফ্লগে সংরক্ষণ করা হয়।

এটি git rebase --quitঅটোস্ট্যাশ এন্ট্রি কেবল অস্তিত্বের বাইরে রেখে দেওয়া এখনকার আচরণের সাথে বিপরীত ।

আচরণকে এডপ্ট git merge --quitমধ্যে git rebase --quitএবং এর পরিবর্তে শুধু মোছার লুকোবার জায়গা reflog মধ্যে autostash এন্ট্রি সংরক্ষণ করুন।


3
git rebaseআমি যেমন করেছিলাম ঠিক তেমনগুলি হারাবার পরিবর্তে যখন উপরের দিকে পরিবর্তনগুলি করা হয় তখন ওয়ার্কিং ডিরেক্টরিটি পুনরায় সেট করার পার্শ্ব-প্রতিক্রিয়া এড়াতে এটি খুব কার্যকর P
যুদ্ধের মতো শিম্পাঞ্জি

12

আপনি ভাগ্যবান যে আপনি রিবেসটি সম্পূর্ণ করেন নি, আপনি এখনও করতে পারেন git rebase --abort। আপনি যদি রিবেসটি সম্পন্ন করে থাকেন (এটি ইতিহাসের পুনর্লিখন করে ) তবে বিষয়গুলি আরও জটিল হত। সম্ভাব্য ক্ষতিকারক ক্রিয়াকলাপগুলি (বিশেষত ইতিহাসের পুনর্লিখন) করার আগে শাখাগুলির টিপসগুলিকে ট্যাগ করার বিষয়ে বিবেচনা করুন, যদি কোনওরকম কিছু ঘটে তবে আপনি পুনরায় রাইন্ড করতে পারেন।


8

আপনি যদি "Rebasing" , "ইতিমধ্যে শুরু রি-বেসের ফলে" যা আপনি করতে চান বাতিল শুধু মন্তব্য (#)রি-বেসের ফলে সম্পাদকে উল্লিখিত সব হলেও ক্ষতি নেই।

ফলস্বরূপ আপনি একটি কমান্ড লাইন বার্তা পাবেন

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