You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Git:提交代码时忽略指定文件夹且不删除该文件夹如何解决?

解决Gitignore添加后目标文件夹被删除的问题

嘿,我完全懂你现在的困扰——本来想通过.gitignore忽略生产服务器文件夹,结果它反倒被删除了,这确实挺闹心的。咱们一步步来搞定这个问题:

为什么会出现这种情况?

核心原因是:这个生产文件夹之前已经被Git追踪过了。当你突然把它加入.gitignore时,Git会默认认为你要移除这个被追踪的目录,所以在后续的提交、拉取操作中,就会把它从本地(甚至远程)删除。

具体解决步骤

1. 先恢复本地被删除的文件夹

如果你的文件夹已经被删除,先把它找回来:

  • 要是还没提交删除操作,直接用命令恢复:
    git restore <你的生产文件夹路径>
    
  • 要是已经提交了删除,可以从Git历史里恢复:
    git checkout HEAD~1 -- <你的生产文件夹路径>
    
    (这个命令会从最近一次提交的版本里把文件夹拉回来,记得替换成实际路径)

2. 停止Git对该文件夹的追踪(但保留本地文件)

这一步是关键,一定要加--cached参数,它只会移除Git的追踪关系,不会删除本地的文件:

git rm -r --cached <你的生产文件夹路径>

比如你的生产文件夹叫prod-server,那命令就是git rm -r --cached prod-server/(末尾的斜杠确保Git识别为文件夹)

3. 确保.gitignore规则正确

打开你的.gitignore文件,确认已经添加了正确的规则:

# 忽略生产服务器文件夹
prod-server/

(同样,末尾的斜杠不能少,不然可能会忽略同名文件而不是文件夹)

4. 提交并推送更改

现在把这些修改提交到本地仓库:

git add .gitignore
git commit -m "停止追踪生产服务器文件夹并添加到gitignore"

注意:关于远程仓库的处理

如果远程仓库里已经存在这个生产文件夹,这次提交推送到远程后,远程的该文件夹会被删除!所以:

  • 如果远程的生产文件夹是有用的,先在远程服务器上备份这个文件夹,再推送;
  • 要是团队协作,记得提前告知其他成员,让他们先备份本地的该文件夹,再拉取你的提交。

后续预防措施

  • 以后新增需要忽略的文件夹/文件时,先在.gitignore里添加规则,再执行git add操作,避免被Git追踪;
  • 团队协作时,确保所有人都同步最新的.gitignore规则,避免出现误提交、误删除的情况。

内容的提问来源于stack exchange,提问作者Rui Costa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 04:02:20