执行git pull时服务器.env文件被覆盖,如何阻止该文件变更?
解决Git Pull覆盖已加入.gitignore的.env文件问题
你的问题核心是已被Git跟踪的文件不受.gitignore规则约束——虽然你把.env加进了.gitignore,但如果这个文件之前已经被提交并推送到远程仓库,pull时远程版本就会覆盖服务器本地的文件。另外注意你的.gitignore用了中文逗号分隔规则,这是无效的,每个规则必须单独占一行。
排查与解决步骤:
确认.env是否已被仓库跟踪
在本地仓库执行命令:git log --oneline -- .env如果输出提交记录,说明该文件确实已被推送到远程仓库。
备份服务器上的.env文件
先把当前服务器的.env复制到安全位置,防止配置丢失。移除仓库对.env的跟踪(保留本地文件)
在本地仓库执行:git rm --cached .env这个命令只会从Git的跟踪列表中移除文件,不会删除本地的.env。
修正.gitignore格式
把你的.gitignore修改为每行一个规则,确保内容如下:.env .env.example .env.prod node_modules提交并推送变更
git add .gitignore git commit -m "Stop tracking .env file" git push origin v2.0服务器重新拉取
回到服务器执行git pull origin v2.0,之后你的.env文件就不会再被pull操作覆盖了。
后续注意事项:
- 通知团队其他成员同步这个变更,避免有人再次将.env提交到仓库。
- 新增环境配置文件时,先添加到.gitignore再创建文件,确保文件一开始就不被Git跟踪。
内容的提问来源于stack exchange,提问作者tantanrahman
相关产品推荐
相关产品推荐

