গিট স্ট্যাশ পপ বাতিল করুন


133

আমি একটি গিট স্ট্যাশ পপ করেছি এবং এখন আমার প্রচুর দ্বন্দ্ব রয়েছে। আমি আমার সমস্ত সাম্প্রতিক কোডটি আগেই প্রতিশ্রুতিবদ্ধ করেছি git stash pop, সুতরাং শেষ প্রতিশ্রুতিতে ফিরে যাওয়ার এবং সমস্ত সংঘাতগুলি থেকে মুক্তি পাওয়ার এবং git stash popইনজেকশনের কোড দেওয়ার কোনও উপায় কি আছে ?


আপনি কি এখনও পপড কাজটি সংরক্ষণ করতে চান, বা আপনি আর কখনও এটি দেখতে চান না?
jscs

1
না আমি পপড কাজটি চাই না। আমি 4 মাস আগে স্ট্যাশ করেছিলাম এবং নিশ্চিত নেই যে সেখানে কী রয়েছে?
jdog

2
আপনি স্ট্যাশ দেওয়ার আগে কোন জিনিসকে বাদ দিয়েছিলেন সে বিষয়ে যত্নশীল?
অ্যান্ড্রু মার্শাল

4 মাস আগে বা আজকে? আমার এক ঘন্টা আগে যা ছিল তা চাই।
jdog

5
যদি তখন বিবাদ হয় যখন আপনি git stashতখন গিট তালিকা থেকে স্ট্যাশকে ছাড়বেন না। সুতরাং git reset --hard HEADপপড কাজটি ধ্বংস করে না।
জাওয়াদস্যাক

উত্তর:


189

এটি ইতিমধ্যে স্ট্যাকওভারফ্লোতে জিজ্ঞাসা করা হয়েছে এবং উত্তর দেওয়া হয়েছে ( কীভাবে পূর্বের প্রতিশ্রুতিতে গিট সংগ্রহস্থলটি ফেরানো যায়? ) তবে সহজ উত্তরটি হ'ল:

git reset --hard HEAD

এটি আপনার সমস্যার যত্ন নেওয়া উচিত। দ্রষ্টব্য যে এটি সংগ্রহস্থল থেকে সমস্ত আপত্তিজনক পরিবর্তনগুলি সরিয়ে দেয়।

মনে রাখবেন যে যদি দ্বন্দ্ব থাকে তবে স্ট্যাশ সংরক্ষণ করা হয়। থেকে লুকোবার জায়গা ডক্স :

রাষ্ট্র প্রয়োগ বিবাদে ব্যর্থ হতে পারে; এই ক্ষেত্রে, এটি স্ট্যাশ তালিকা থেকে সরানো হবে না। আপনার হাত দ্বারা দ্বন্দ্বগুলি সমাধান করতে হবে এবং git stash dropম্যানুয়ালি কল করার পরে।


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

28
তবে এটি আপনার স্ট্যাশ হারিয়ে যাবে
কে ওয়েবার

19
@ কে.ওয়েবার git stash popসংঘাতের ফলস্বরূপ, স্ট্যাশকে স্ট্যাশ তালিকা থেকে মুছে ফেলা হবে না।
দাইউই

1
আমি নিশ্চিত না যে 'আসলে আপনি নিজের স্ট্যাশ হারাবেন না' কে উজ্জীবিত করছে, আমি সবেমাত্র আমার হারিয়েছি
অ্যান্থনি

4
একটি সমাধান এই প্রোগ্রামটিতে অনেক না, যেহেতু এটি তুলে ধরে যে আপনার হবে uncommited পরিবর্তন হারান।
ইভান পি

4

নির্দিষ্ট ফাইলগুলিতেও রিসেট কল করা যেতে পারে:

git reset HEAD <filename>...

আপনি যদিও কোনও ফাইল পুনরায় সেট করতে পারবেন না। তবে আপনি পরে চেকআউট দিয়ে পরিবর্তনগুলি ফিরিয়ে নিতে পারেন:

git checkout -- <filename>...

মাইকেলমিলমের উত্তরে লূকের নির্দেশ অনুসারে আপনি স্ট্যাশ সংরক্ষণ করবেন।

আপনি যখন আপনার অ-প্রতিশ্রুতিবদ্ধ স্থানীয় পরিবর্তনগুলি হারাতে চান না তখন এটি কার্যকর।


0

আপনি যদি কখনও পপড স্ট্যাশে কাজটি দেখতে না চান তবে এটি হার্ড রিসেটের মতোই সহজ:

git reset --hard HEAD

এটি গিটকে এই সত্যটি উপেক্ষা করতে গিটকে বলে যে আপনি আপনার কার্যক্ষম ডিরেক্টরিতে অনির্ধারিত পরিবর্তন করেছেন, এবং কার্যকরী ডিরেক্টরি, স্টেজিং অঞ্চল এবং আপনার দ্বারা প্রদত্ত প্রতিশ্রুতিতে নেতৃত্ব দিয়েছেন - এক্ষেত্রে, বিদ্যমান হেড, যা আপনার সমস্ত কাজ করে contains স্রেফ প্রতিশ্রুতিবদ্ধ

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