如何仅对已删除文件执行git reset --hard,同时保留现有文件?
解决方案
可以通过组合Git命令批量恢复所有被删除的文件,同时保留其他文件的本地修改,具体操作如下:
(可选)确认被删除的文件列表:
先执行这条命令,确保要恢复的文件符合预期,避免误操作:git ls-files --deleted它会输出所有未暂存的被删除文件,比如你的场景中会显示
A和B。批量恢复被删除文件到上次提交状态:
执行以下命令,直接从最近提交(HEAD)中恢复所有被删除文件,同时保留其他修改文件的本地更改:git checkout HEAD -- $(git ls-files --deleted)
原理说明
git ls-files --deleted:Git内置的文件筛选工具,精准列出仓库中被删除且未暂存的文件。git checkout HEAD -- <文件路径>:从指定提交(这里是HEAD即上次提交)恢复目标文件,不会干扰其他未被指定文件的本地修改。
内容的提问来源于stack exchange,提问作者Ooker
相关产品推荐
相关产品推荐

