我的代码库是最新的。但是我不小心删除了几个文件。现在我想恢复到最新的代码库。请问应该怎么做?
$ git pull origin master
期望从服务器获取所有内容,但收到了“一切都是最新的”的消息。
那么如何使用git pull
从服务器获取我的源代码呢?
你可以将本地分支重置为远程的内容
git reset --hard origin/main
文件已经在您的本地 git 历史记录中,因此您无需拉取代码即可将它们恢复。运行
git checkout <file>
关于缺失文件的问题。如果您没有任何未提交的更改,则
git checkout .
在 git 根目录下也可以工作。
这显示了所有已删除的文件。
git ls-files --deleted
这将恢复已删除的文件。
git checkout <deleted file name with complete path>
对于所有未暂存的文件,请使用
git checkout -- .
或更安全的方式
git clean -fd
这就是您所需要的全部。
git reset --hard
git fetch origin
git pull origin master
git status
命令的结果是什么?您还可以尝试使用 git reset --hard origin/master
这将恢复所有已删除的文件,因为它们仍然驻留在您的本地存储库中。
git checkout -- .
如果您只是还原更改,那么所有文件都将被删除。这不是一个解决方法(您提到的),需要重置,我认为这比获取新的存储库要好。
要从 git pull 中获取已删除的文件,我们可以使用此命令将这些已删除的文件恢复回来
git rev-list -n 1 HEAD
$ git reflog
da82426 (HEAD -> main) HEAD@{0}: reset: moving to HEAD
da82426 (HEAD -> main) HEAD@{1}: reset: moving to HEAD~
774b952 (origin/master, origin/main) HEAD@{2}: reset: moving to HEAD
774b952 (origin/master, origin/main) HEAD@{3}: checkout: moving from master to main
8851ece (master) HEAD@{4}: checkout: moving from master to master
8851ece (master) HEAD@{5}: commit: First commit
8bd9080 HEAD@{6}: commit (initial): Initialize project using Create React App
$ git reset --hard 8851ece
它可能会恢复文件。