部署到Cloudways时如何防止Git删除生产服务器上的.env文件?
解决Git Pull时保留生产环境.env文件的方法
你的问题核心是Cloudways部署流程里的Git清理操作删掉了未被仓库追踪的.env文件,下面是具体解决步骤:
标记.env为Git忽略但保留
登录Cloudways服务器的终端,进入项目根目录,执行以下命令:git update-index --assume-unchanged .env这个命令会告诉Git:忽略对该文件的任何修改,同时不会在pull或clean操作中把它当作未追踪文件删除。之后你直接修改服务器上的.env就行,Git不会干涉它。
修改Cloudways部署脚本(关键)
Cloudways默认部署流程可能会执行git clean -fd来清理未追踪文件,这就是.env被删的直接原因。你需要自定义部署脚本排除.env:- 进入Cloudways控制台,找到你的应用,进入「Application Settings」→「Deployment Hooks」
- 找到部署前执行Git操作的脚本部分,把原来的
git clean -fd替换成:
这样执行清理时会跳过.env文件;如果不需要清理其他未追踪文件,也可以直接删掉这个git clean -fd --exclude=.envgit clean命令。
补充:确保.gitignore里包含.env
虽然你的仓库里没存.env,但在项目的.gitignore文件里添加一行.env,能让Git全局忽略这个文件,避免后续误提交,也能配合上面的操作增强效果。
如果之后需要取消对.env的忽略标记,执行:
git update-index --no-assume-unchanged .env
内容的提问来源于stack exchange,提问作者Paulo Costa
相关产品推荐
相关产品推荐

