当你使用 git rm 删除文件后,可以通过以下几种方式恢复文件:
git restore(Git 2.23+)bash# 恢复已暂存的更改
git restore --staged 文件名
# 恢复工作区文件
git restore 文件名
git resetbash# 从暂存区移出,但保留工作区文件
git reset HEAD 文件名
# 从暂存区恢复文件
git checkout -- 文件名
bash# 先查看删除文件的提交记录
git log --oneline -- 文件名
# 恢复到指定提交的文件
git checkout 提交哈希^ -- 文件名
# 或
git restore --source=提交哈希^ 文件名
bash# 找到文件最后一次存在的提交
git rev-list -n 1 HEAD -- 文件名
# 从该提交恢复文件
git checkout 上一步获取的提交哈希 -- 文件名
git reflog 恢复如果已经提交了删除,但想撤销整个提交:
bash# 查看引用日志
git reflog
# 重置到删除前的状态
git reset --hard HEAD@{1}
# 或
git reset --hard 提交哈希
bash# 场景:误删了文件
git rm important.txt
git status # 看到文件被删除
# 情况1:还未 git add
git checkout -- important.txt
# 情况2:已经 git add
git reset HEAD important.txt
git checkout -- important.txt
# 情况3:已经 git commit
git log --oneline -- important.txt
# 假设找到删除前的提交是 abc1234
git checkout abc1234 -- important.txt
git status 确认当前状态git rm --cached 只从索引删除,保留工作区文件git log --oneline -- 文件名 查看文件历史本文作者:张京
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!