说明
- thinkphp项目,本地代码修改之后, git提交到master的分支中, 服务器端通过
git pullmaster的分支, 完成代码的更新。 - 希望忽略
.env的提交, 因为本地和服务端的数据库参数不一样,本地和服务端需要两份不一样的.env的文件 - 需要重新修改
.env的时候,可以打开‘某个开关’重新更新.env文件
碰到的问题
-
.gitignore文件中添加/.env没有效果,因为.env文件有跟踪状态
-
- 使用
git rm --cached .env,git state层的.env文件被删除了,服务端pull后.env也会被删
- 使用
解决
如果你不想删除 .env 文件,但希望在未来的更改中忽略它,可以通过修改并避免。相应地,你需要一个解决方案来忽略 .env 文件的更改而不删除它。
示例操作步骤
先要将.env文件内容维持服务端的提交。
-
修改
.gitignore文件: 确保你的.gitignore文件包含以下条目:*.env // 或者 /.env -
阻止 Git 跟踪
.env文件的进一步更改: 在项目根目录中运行以下命令:git update-index --assume-unchanged .env -
提交
.gitignore文件的更改:git add . git commit -m "Add .env to .gitignore" git push
恢复对 .env 文件的跟踪
如果你需要恢复对 .env 文件的跟踪,可以使用以下命令:
git update-index --no-assume-unchanged .env
这样,你可以在需要时重新开始跟踪 .env 文件的更改。
检查 .env 文件状态
确认 .env 文件的状态:
git status
你应该看不到 .env 文件的更改出现在未提交的更改中。
总结
通过这种方法,你可以确保 .env 文件在本地保留,并且不会在远程仓库和服务器上的拉取操作中被删除。此方法适用于需要保留 .env 文件但避免其更改被提交到版本控制系统中的情况。