Git或VS Code是否删除了我的dev_int文件夹?
问题解答
这不是Git的预期行为
Git的.gitignore规则仅用于告诉Git不要追踪指定文件/文件夹,不会主动删除本地已存在的文件。你的dev_int文件夹消失,大概率是以下操作导致:
- 误执行了
git clean系列命令(比如git clean -fd会强制删除所有未被Git追踪的文件和文件夹) - VS Code的误操作(比如右键删除、插件自动清理)
- 终端命令误删(比如
rm -rf dev_int)
正确处理方式
1. 先尝试找回丢失的文件
- 检查Ubuntu系统的废纸篓,如果是图形界面误删,大概率能在这里找回
- 如果是Git命令相关操作导致,执行
git reflog查看操作记录,或者用git fsck --lost-found查找Git仓库中丢失的对象,再从.git/lost-found/目录中恢复文件
2. 正确实现「保留本地文件但不提交到Git」的操作
根据dev_int文件夹的历史状态,分两种情况处理:
- 如果文件夹内的文件从未被Git提交过:
当前的dev_int/*规则是有效的,但Git不会追踪空文件夹,所以如果文件夹变空可能被系统或工具误删,建议在dev_int里创建一个空的.gitkeep文件(这是Git约定俗成的命名,也可用其他名称),确保文件夹能稳定保留在本地 - 如果文件夹内的文件之前被Git提交过:
仅添加.gitignore规则没用,需要先把这些文件从Git的索引中移除(但保留本地文件),执行命令:
然后提交git rm --cached dev_int/*.gitignore和索引变更的记录:git add .gitignore git commit -m "Stop tracking files in dev_int folder"
3. 避免类似问题的注意事项
- 执行
git clean前一定要加-n参数预览要删除的内容,比如git clean -nfd,确认没问题再去掉-n执行 - 不要随意使用
rm -rf这类高危命令,尤其是路径包含通配符时
内容的提问来源于stack exchange,提问作者ltr
相关产品推荐
相关产品推荐

