Git - deleted some files locally, how do I get them from a remote repository

Git

Git Problem Overview


I've deleted some files on my PC, how do I download them again?

Pull says: "Already up-to-date".

Git Solutions


Solution 1 - Git

Since git is a distributed VCS, your local repository contains all of the information. No downloading is necessary; you just need to extract the content you want from the repo at your fingertips.

If you haven't committed the deletion, just check out the files from your current commit:

git checkout HEAD <path>

If you have committed the deletion, you need to check out the files from a commit that has them. Presumably it would be the previous commit:

git checkout HEAD^ <path>

but if it's n commits ago, use HEAD~n, or simply fire up gitk, find the SHA1 of the appropriate commit, and paste it in.

Solution 2 - Git

git checkout filename

git reset --hard might do the trick as well

Solution 3 - Git

If you have deleted multiple files locally but not committed, you can force checkout

$ git checkout -f HEAD

Solution 4 - Git

If you deleted multiple files locally and did not commit the changes, go to your local repository path, open the git shell and type.

$ git checkout HEAD .

All the deleted files before the last commit will be recovered.

Adding "." will recover all the deleted the files in the current repository, to their respective paths.

For more details checkout the documentation.

Solution 5 - Git

You need to check out a previous version from before you deleted the files. Try git checkout HEAD^ to checkout the last revision.

Solution 6 - Git

Also, I add to do the following steps so that the git repo would be correctly linked with the IDE:

 $ git reset <commit #>

 $ git checkout <file/path>

I hope this was helpful!!

Solution 7 - Git

This is a rather niche use-case (although funnily enough answers the question as stated exactly), but just in case anyone ever needs this: if you do git filter-branch removing a file along with its history and then you want to recover just the latest versions of the removed files, git checkout filename won't be enough (because the file is no longer in the local history of the repository) and you need to specify that you want to reset to the remote version using git checkout origin/main -- filename.

Solution 8 - Git

In the code directory: git checkout .

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionDick ColtView Question on Stackoverflow
Solution 1 - GitCascabelView Answer on Stackoverflow
Solution 2 - GitŠimon TóthView Answer on Stackoverflow
Solution 3 - GitAmitView Answer on Stackoverflow
Solution 4 - GitrzskhrView Answer on Stackoverflow
Solution 5 - Gituser229044View Answer on Stackoverflow
Solution 6 - GitMona WadeView Answer on Stackoverflow
Solution 7 - GitTomáš HübelbauerView Answer on Stackoverflow
Solution 8 - GitsmcsView Answer on Stackoverflow