简体   繁体   中英

Is it still possible to restore deleted untracked files in git?

let's say yesterday I did some changes on my master branch, and I forgot to add, commit them. and in the morning i did

git reset --hard

is it possible to restore deleted files in this situation?

Some better IDEs keep track of your files as a local history. If you removed files externally (say, git reset ) you should be able to click in your IDE on parent directory and choose "Compare with local history".

I used this feature successfully in PHPStorm IDE when my untracked files got wiped out by some utility...

不...................不是。

git reset --hard is a very dangerous command, so be careful when you use it next time :)

If you do not have any commit for those files, it seems you have no chance restore them.

Otherwise, reflog command can help you.

( Note : The steps seem to have changed a bit, since the accepted answer was posted. But the idea remains the same. )

To add to the accepted answer, I was able to recover my deleted files using Webstorm 2016.

  1. First, I lost my file doing a forced clean using git git clean -f .
  2. To recover it, I went in Webstorm and did the following steps:

    • Go to Project tab for your project, right click to get to 'Show History' under 'Local History'. ( As shown in this picture. )

    • Once 'Show History' is clicked, one can see the pop up with 'External Change -> Revert' in it. Click to revert the desired files on right. ( As shown in the attached picture. )

    • After the above 2 steps, you should see your file come back in 'Project' tab. 'Local History' pop up will show something like in this attached picture. Reverted to External Change You will get an option to get it add to Git.

    • To untrack it, just do a git reset HEAD <filename> from the command line.

git reset --hard won't remove untracked files. git clean will, however.

However if you git add the files, don't git commit them and then run git reset --hard those files will be lost.

But it's ok, as they can be recovered, as shown in this answer . (Well, until the next git gc ).

git fsck may be able to help you.

If you have not done garbage collection yet it might be able to help you. Once you have the blob id you can say:

git show {blobId}

In Intellij how to recover the untracked revert changes

Step 1: Select the Folder , Right click on it

Setp 2: Go to Local History, and then go to Show history

在此输入图像描述

Step 3: Select the untracked files that your revert accidentally. then select those file in right side panel and revert the changes, you will get the files in reverted format.

在此输入图像描述

You can't access to previous version of untracked deleted files from git, because, of coruse, they do not exist. I would recover them from some backup (maybe there are hidden backup files left by the ide/editor?), or, in alternative, I would avoid working on that filesystem too much and start searching for recovery tools.

If file retrieval tools like "recuva" didn't work, do the following:

  1. If you have build the solution at least once then there will be DLLs (In .net intermediate language files are called DLLs) stored in your Debug/Release or some other folder.
  2. Then try disassembling the DLLs using tools like DotPeek etc.

This worked for me. I was able to retrieve the content.

If you're on Windows, go to the folder in which you kept these files > Right click > properties > "Previous revisions" and double click on a recent revision. It'll show how all of these files were at that time mentioned there. Open the files you want and if it's the one you want copy the contents and paste in your current file.

The Local History method or simply clicking ctrl+z (undo) in the editor you wrote it in, as mentioned in the other answers is the best answer. But this method came in handy when I didn't actually code in an IDE that supports local history.

For VScode, the Below steps worked for me to restore deleted untracked file

  1. CTRL + SHIFT + P
  2. LOOK FOR: "Local History: Find Entry to Restore"
  3. SEARCH FOR DELETED FILE
  4. SELECT THE LAST SAVED FILE TO OPEN

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM