从GitHub移除含敏感信息的提交:克隆旧提交分支方案是否可行?
你的分支替换方案的风险分析
确实存在几个风险点
- 本地历史残留:那1-2个克隆过仓库的人,他们本地仓库里还存着带敏感信息的旧提交历史。哪怕你删了远程旧分支,他们本地不主动清理的话,敏感内容一直都在,甚至不小心把旧分支推回远程,等于白忙活。
- GitHub后台缓存:GitHub会存仓库的历史快照,你删了旧分支后,那个敏感提交可能还在后台缓存里,短时间内通过提交哈希还能访问到。虽然GitHub后续会清理,但不是立刻就没。
- 分支同步混乱:你把新分支改成原名称后,其他人本地的原分支和远程会冲突。他们得先删本地旧分支再重新拉,操作错了容易搞丢代码或者弄乱分支结构。
必须做的补充操作
- 一定要盯着那1-2个用户执行这些步骤:
- 先切到其他分支:
git checkout 其他分支名 - 删除本地的旧原分支:
git branch -D 原分支名 - 重新拉取远程的新分支:
git checkout 原分支名
- 先切到其他分支:
- 最重要的:如果敏感信息是API密钥、密码这类,立刻去作废这个敏感信息——换密钥、改密码,这比删提交靠谱多了,就算历史里还有残留,信息本身已经没用了。
内容的提问来源于stack exchange,提问作者buks
相关产品推荐
相关产品推荐

