আমি কি মুছে ফেলা ফাইলগুলি পুনরুদ্ধার করতে পারি?


119

আমি গিথব পৃষ্ঠা তৈরির নির্দেশাবলী অনুসরণ করছিলাম , এবং আমার গিট সাব ডিরেক্টরিতে নিচে যেতে ভুলে গেছি। ফলস্বরূপ, আমি স্রেফ ডকুমেন্টের একটি সম্পূর্ণ ডিরেক্টরিকে নক করলাম git clean -fdx
এই ভয়ঙ্কর ভুলটিকে আমি পূর্বাবস্থায় ফেলার কোনও উপায় আছে কি?


2
আমি নিশ্চিতভাবে জানি না, তবে গিট দিয়ে এটি সম্ভব বলে আমি মনে করি না। তবে আপনার ফাইল সিস্টেমের জন্য একটি অপসারণযোগ্য ইউটিলিটি কৌশলটি করতে পারে।
স্থির_আরত্তি

9
মজার বিষয় হল, গিট কমিউনিটি বইতেgit clean -fdx কোনও সতর্কতা ছাড়াই পরামর্শ দেওয়া হয়েছে যে অপারেশনটি এত বিপজ্জনক। আমি অবাক হই যে এই আপাতদৃষ্টিতে নির্দোষ পরামর্শের সাথে কত লোক অদম্যভাবে তাদের ফাইলগুলি ধ্বংস করে দিয়েছে।
catpnosis

5
আপনার আইডিইতে একটি "স্থানীয় ইতিহাস" আছে যেমন কিনা Eclipse বা IntelliJ IDEs আছে কিনা তা নিশ্চিত হয়ে নিন Be এটি আপনাকে অজান্তেই git cleanকলগুলি থেকে প্রচুর বেদনা বাঁচাতে পারে । এছাড়াও, পরীক্ষা না করে পরিষ্কার করার অভ্যাস থেকে বেরিয়ে আসার চেষ্টা করুন। এমন একটি পাওয়ারশেল বা বাশ স্ক্রিপ্ট তৈরি করুন যা বলা যেতে পারে যা git clean -fdxnআপনি অবিশ্বাস্যরূপে ধ্বংসাত্মক ক্লিন চালানোর আগে একটি কনফার্ম প্রম্পট দিয়ে চালিত হবে ।
জোশ বুর্গেস

উত্তর:


129

না। ফাইলগুলি শেষ হয়ে গেছে।

( সবেমাত্রunlink() লিনাক্সে চেক করা হয়েছে: গিট ক্লিন কল , এবং আগে কোনও কিছুই ব্যাকআপ রাখে না))


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

1
@ উসমান আমার ক্ষেত্রে git cleanদুর্ঘটনাক্রমে .ideaলুকানো ফোল্ডারের অভ্যন্তরে তাকগুলি মুছে ফেলেছিল এবং স্থানীয় ইতিহাস আমাকে বাঁচিয়েছে!
emkman

2
@ উসমানের দুর্দান্ত টিপ Eclipse এর সাহায্যে আমি আমার ফাইলটি "স্থানীয় ইতিহাস থেকে পুনরুদ্ধার করুন ..." বিকল্পের সাথে ফিরে পেতে পারি: i.imgur.com/XWNLOk5.gifv
ব্র্যান্ডজিজি

1
প্রকৃতপক্ষে এটি প্যাসিবল তবে হ্যাকি পদ্ধতিতে। এই উত্তরটি দেখুন: stackoverflow.com/questions/6267180/can-i-undo-a-git-clean-fdx/…
জাস্ট শেডো

4
পাইচার্মে আপনি এগুলি পুনরুদ্ধার করতে পারেন। সেগুলিতে যে ফোল্ডারটি ছিল সেটিতে ডান ক্লিক করুন, স্থানীয় ইতিহাসে ক্লিক করুন, মুছুন এবং খুঁজে বের করুন ক্লিক করুন।
জুয়ানজো কন্টি

48
git clean -fdxn

একটি শুকনো রান করবে এবং আপনাকে দৌড়ালে কী ফাইলগুলি মুছে ফেলা হবে তা আপনাকে দেখাবে

git clean -fdx

(অবশ্যই এটি কেবলমাত্র যদি আপনি এটি সময়ের আগে জেনে থাকেন তবে পরবর্তী সময়ের জন্য এটি সহায়ক)


7
এটি যুক্ত করতে, -nবেশিরভাগ গিট কমান্ডে (এবং আরও অনেক * নিক্স কমান্ড) কাজ করে।
নিক ম্যাককুরডি

23

ইন্টেলিজ / অ্যান্ড্রয়েড স্টুডিও স্থানীয় ইতিহাস থেকে ফাইলগুলি পুনরুদ্ধার করতে দেয় ।


3
পাইচার্মও এটি সমর্থন করে! এই উত্তরের জন্য আপনাকে ধন্যবাদ। শীর্ষস্থানীয় 3 পরে "আমি দুঃখিত না যে আপনি ভাগ্য থেকে দূরে আছেন" পরে উত্তরগুলি বাকীগুলি পড়ে আমি খুব আনন্দিত।
ব্রাইসন

18

না, "গিট ক্লিন-এফডিএক্স" আপনার কার্য-ডিরেক্টরি থেকে গিট ট্র্যাক করে না এমন সমস্ত ফাইল এবং ডিরেক্টরি মুছে ফেলবে। গিট এই ফাইলগুলি ট্র্যাক করে না বলে এটিতে এই ফাইলগুলির কোনও ব্যাকআপ থাকবে না। কমপক্ষে সাধারণত না।

যদি আপনি তুলনামূলকভাবে সম্প্রতি এই ফাইলগুলির মধ্যে একটি 'গিট অ্যাড' করেন (তবে প্রতিশ্রুতি বাতিল করে দিয়েছেন), তবে 'গিট এফএসকে - সর্বশেষ পাওয়া' দিয়ে এটি সন্ধান করার সুযোগ রয়েছে। এটি চেষ্টা করে দেখার মতো, তবে আপনার আশা খুব বেশি পাবেন না।

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


আসল সমস্যাটি হ'ল ডিরেক্টরিটি পাশাপাশি একটি সংগ্রহস্থল হওয়ার কথা ছিল না। লগ ফিরে তাকালে আউট আমি পালাক্রমে পর নতুন রেপো নির্দেশিকাতে সিডি ভুলে গেছি mkdir-ing এটা
এরিক

1
এই প্রশ্নটি পড়ার অল্প সময়ের মধ্যেই, আমি গিটকে একটি প্যাচ লিখেছিলাম যা প্রতিটি মুছে ফেলা ফাইলটির ব্যাক-আপ করার জন্য একটি কনফিগারেশন ভেরিয়েবল যুক্ত করে। সম্ভবত এটি অন্যদের জন্য দরকারী হতে পারে? github.com/kusma/git/tree/work/clean-backup
কুসমা

1
আমি আজ ভাগ্যবান !!! "গিট fsck - সর্বশেষ পাওয়া" ধন্যবাদ। সমস্ত পরিবর্তনগুলি পেতে আমি নিম্নলিখিতটি ব্যবহার করেছি: git fsck | awk '{মুদ্রণ $ 3}' | xargs গিট শো | tee searchresults.log আমি যে সমস্ত ফাইল যুক্ত করেছিলাম এবং তারপরে সরানো হয়েছিল সেভাবে আমি লগ থেকে পেয়েছি। :)
মার্সেলো ডি বিক্রয়

11

উপরে যেমন উল্লিখিত @ কুসমা, যদি আপনি ভাগ্যবান হন (আপনি যদি কখনও "গিট অ্যাড" করেন) তবে আপনি সম্পূর্ণ বস্তুটি বের করতে নিম্নলিখিত ব্যবহার করতে পারেন:

git fsck | awk '{print $3}' | xargs git show | tee searchresults.log

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


8

আপনি যদি কোনও জেটব্রাইন আইডিই ব্যবহার করেন তবে কোনও ফাইলের স্থানীয় ইতিহাস দেখার বিকল্প রয়েছে। আপনি যদি কাজটি করেন তবে git cleanআপনি ফাইলটি পুনরায় তৈরি করতে পারেন এবং ফাইলটির স্থানীয় ইতিহাস পরীক্ষা করতে পারেন এবং সেখান থেকে পুনরুদ্ধার করতে পারেন।

একক ফাইলের জন্য আমার পক্ষে কাজ করেছেন। একটি সম্পূর্ণ ডিরেক্টরি জন্য আমি এটি করতে কিভাবে কোন ধারণা আছে।


একই ফাইলের নামের সাথে একই স্থানে ফাইলটি তৈরি করুন। আইডিইতে ডান ক্লিক করুন এবং "ইতিহাস দেখান" এ ক্লিক করুন। এটি থেকে কন্টেন্ট পেস্ট করুন। দুর্দান্ত পরামর্শ @ রাজেশ। ধন্যবাদ।
গভীর

1
আমি রক্ষা পেয়েছি। ধন্যবাদ.
স্কট

ফাইলের বিষয়বস্তু অনুলিপি করার দরকার নেই, কেবল ডান ক্লিক করুন ফাইলটি, এবং পুনরায় ফিরিয়ে আনতে 'রিভার্ট' ক্লিক করুন সেই সংস্করণে (এমনকি আপনি এটি মুছে
ফেললেও

7

আমার আজ এই সমস্যা ছিল।

অন্যরা যেমন বলেছে, গিট ফাইলগুলি রাখে না।

এটিকে পূর্বাবস্থায় ফেলার একমাত্র উপায় হ'ল একটি অপসারণযোগ্য ইউটিলিটি। আমি "এক্সট্রাডিলেট" ব্যবহার করেছি এবং সবকিছু পুনরুদ্ধার করেছি, তবে আপনার মাইলেজ / ফাইল সিস্টেম আলাদা হতে পারে।


7

আপনি যদি একটিলপ্সে কাজ করছেন তবে একটি সম্ভাব্য সমাধান হ'ল গ্রহের স্থানীয় ইতিহাস থেকে পুনরুদ্ধার।


2
আমি পাইচার্ম ব্যবহার করছি এবং স্থানীয় ইতিহাস আমাকে বাঁচিয়েছে
psychok7

1
ইন্টেলিজ আইডিএতে একই জিনিস!
আর্থুরাখে

রুবিমাইনের স্থানীয় ইতিহাসও রয়েছে। আমাকে বাঁচাতে!
উসমান

সমস্ত ইন্টেলিজ ব্রাউজারের স্থানীয় ইতিহাস রয়েছে। সৌভাগ্যক্রমে। আমি ওয়েবস্টোরাম ব্যবহার করছিলাম এবং এটি সন্ধান করার আগেই একটি অ্যানিউরিজম হয়েছিল। 3 ঘন্টা 12 ঘন্টা কাজের দিনগুলি চলে গেছে এবং আমি আমার ডেস্কে এক বোতল হার্ড মদ নেওয়ার বিষয়টি গুরুত্ব সহকারে বিবেচনা করেছি।
জোশ বুর্গেস

7

আসলে হ্যাঁ ! এটা সম্ভব! কিন্তু গিট কমান্ড ব্যবহার না করে।
আমাদের কেবলমাত্র রিকুয়ার মতো একটি ফাইল পুনরুদ্ধার সরঞ্জাম দরকার ।
এটি যেখানে মুছে ফেলা হয়েছে সেই পথটির উল্লেখ করুন এবং এটি ফাইলগুলি পুনরুদ্ধার করতে দিন।

এছাড়াও এই অ্যাপ্লিকেশনটি ব্যবহারের জন্য কয়েকটি দরকারী নোট রয়েছে:

  1. আমি ফাইলগুলি পুনরুদ্ধার করার আগে এই চেকবক্সটি চেক করার জন্য আমি আপনাকে সুপারিশ করব (যখন মুছে ফেলা ফাইলগুলি পুনরুদ্ধার উইন্ডোতে প্রদর্শিত হবে):
    Advanced Mode-> Options-> Actions->Restore folder structure
    এটির সাহায্যে আপনার সমস্ত ফাইল ফোল্ডারের কাঠামো রেখে পুনরুদ্ধার করা হবে তবে এটি আরও সহজ হবে'll যে ফোল্ডারটি মোছা হয়েছিল সেখান থেকে স্রেফ টেনে নিয়ে যাওয়ার জন্য।
  2. ইউএসবি ডিভাইসে পুনরুদ্ধার সরঞ্জামটি ইনস্টল করা অনেক বেশি পছন্দনীয় (নীচের সতর্কতার কারণে)
  3. ফাইলগুলি কোথায় পুনরুদ্ধার করবেন উল্লেখ করার সময়, সেই ফাইলটি যেখানে মুছে ফেলা হয়েছে সেখান থেকে একই ড্রাইভটি নির্বাচন করা এড়িয়ে চলুন (নীচে উল্লিখিত সতর্কতার কারণে আবার), কারণ পুনরুদ্ধার করা ফাইলটি অন্য মুছে ফেলা ফাইলটিকে ওভাররাইট করতে পারে যা এখনও উদ্ধার হয়নি। যে কোনও ইউএসবি ড্রাইভে ফাইল পুনরুদ্ধার করা সেখানে সর্বদা একটি ভাল সমাধান।

সতর্কবাণী! যত তাড়াতাড়ি আপনি কোনও ফাইল হারাবেন (দুর্ঘটনাক্রমে মুছে ফেলুন), সফল পুনরুদ্ধারের সম্ভাবনা বাড়াতে যেখান থেকে মুছে ফেলা হয়েছে সেখান থেকে ড্রাইভটি স্পর্শ না করার (ফাইলগুলি যুক্ত / সম্পাদনা) করার চেষ্টা করবেন না। অন্যথায় আপনি এই ফাইলটি পুরোপুরি হারাতে পারেন।

এটি কেন কাজ করে: আপনি যখন কোনও ফাইল মুছবেন, আসলে এটি মুছবে না। এটি কেবল "মুছে ফেলা" হিসাবে চিহ্নিত হয়েছে তাই পরের বার যখন আপনি একই ড্রাইভে ফাইলগুলি যুক্ত / আপডেট করেন তখন সেই পুরানো ফাইলগুলি নতুন দিয়ে ওভাররাইট করা হয়। তবে সেগুলি ওভাররাইট হওয়া পর্যন্ত ফাইলগুলি পড়া (এবং অবশ্যই পুনরুদ্ধার করা) সম্ভব possible


1
ধন্যবাদ আপনি আমার জীবন বাঁচিয়েছেন। আমি জানি না এটির সঠিক উত্তরটি যদি আমি সবকিছু পুনরুদ্ধার করতে পারি না তবে আমি সবচেয়ে ভাগ্যবান যেহেতু আমার সর্বাধিক প্রয়োজনীয় ফাইলগুলি পেয়েছিলাম।
এক্সজাআর

2

আমি আমার কোডটি আমার ভান্ডারে যুক্ত করার কথা বলেছিলাম এবং আমি ফাইলগুলি পুনরুদ্ধার করতে পারলাম -dfx দিয়ে পরিষ্কার করেছিলাম।

আমি ডিবাগফগুলি ব্যবহার করার, আইওডগুলি, টেস্টডিস্ক এবং অন্যান্য অনেক সরঞ্জাম যা দেখতে পাওয়া যায় এবং দেখতে পাওয়া যায় তার লিঙ্কটি ব্যবহার করার চেষ্টা করেছি এবং এই মূর্খ একটি লেখা দুর্ঘটনাক্রমে মুছে ফেলা ডিরেক্টরিটি খুঁজে পায় নি।

উত্স থেকে অপসারণযোগ্য ডাউনলোড করুন ।
আপনার সম্ভবত e2fslibs-dev প্যাকেজ
রান ইনস্টল করতে হবে

$ ./configure 
$ make 

এটি এসআরসি ফোল্ডারের অভ্যন্তরে অপসারণের জন্য বাইনারি তৈরি করবে আমার ক্ষেত্রে, আমি ভুলভাবে একটি ফোল্ডার মুছে ফেলেছি। আসুন এটাকে ফুলবার বলি

আমি কেবল দৌড়েছি:

$  sudo ./extundelete --restore-directory <full path to FOOBAR > <the partition> 


এবং এটি RESTORED_FOLDERS নামে একটি ফোল্ডার তৈরি করেছে


কি দারুন! যদিও এটি আমার যে ফাইলটি চেয়েছিল সেটি পুনরুদ্ধার করতে পারে নি, এটি এমন একটি বিষয় যা আমি একটি নোট বানাবো - অবশ্যই কাজে আসবে!
ভাইম

1

আপনি যদি এমএসবিল্ডের সাথে গিট ব্যবহার করছেন তবে আমি একটি লক্ষ্য তৈরি করেছি যা সমস্ত ফাইল অনুলিপি করে এবং তারপরেও করে git clean -xdf। আপনি যদি মুছে ফেলতে চাননি এমন কিছু মুছে ফেলেছেন তা বুঝতে পারলে আপনি সহজেই ফাইলটি পুনরুদ্ধার করতে পারবেন। এখানে একবার দেখুন: http://blog.3d-logic.com/2012/11/04/safe-git-clean-with-msbuild/


1

আপনি যদি কোনও ম্যাক ব্যবহার করছেন এবং একটির সাথে ব্যাক আপ ব্যবহার করছেন Time Machineতবে আপনি পুনরুদ্ধার করতে পারবেন


0

সৌভাগ্যক্রমে, আমি উইন্ডোজ using ব্যবহার করার সময় এই ভুলটি করেছি bin সম্পন্ন.


5
আপনি কি বোঝাতে চেয়েছেন? git cleanফাইলগুলি রিসাইকেল বিনে সরায় না not
মেমার্ক

0

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

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