我们在之前的博客 个人网站搭建(Day 11)— git 与 github 的使用 中有说过,Github是一个供用户使用的远程仓库,我们能够将我们的代码托管至github,但是如果我们使用的是免费版的话,那么我们的项目代码便是完全开源的。
那么问题来了,我们知道 Django 项目中有一个 settings.py 文件,包含了我们项目的所有设置信息,自然包括我们的密码(比如说mysql 数据库密码等等),我们自然是不希望这些信息被放到网上去的,那么,如果我们不小心 push 到Github 上面去了应该怎么清理掉这些敏感信息呢?
我们分成四种情况来讨论我们将包含敏感信息的文件放到git里面之后的解决方案,上面说的已经 push 到github是第四种情况:
一、git 保存文件的过程
我们先来复习一下git保存文件的过程,流程图如上所示:
(1)当我们对文件夹中的文件进行修改的时候,git 会自动帮我们把修改的内容加载到工作区
(2)当我们使用 git add 之后,修改的文件就会保存至暂存区
(3)当我们使用 git commit 之后,修改的文件会保存至版本库
(4)使用git push 之后,修改的文件会推送至远程仓库
大致明白保存文件的过程后我们针对以上的四种情况来说明一下解决方案:
其中第一至三种情况参考 廖雪峰-Git教程-撤销修改
第四种情况参考 彻底清除Github上某个文件的历史(针对误上传密码文件等情况)