我错误地将包含密码的文件推送到我的仓库 - 仅供参考,回购只是一个小型的个人项目.
一旦我意识到密码存在,我就将文件添加到.gitignore
并执行git rm -r --cached <filename>
,提交并推送到回购.
我现在意识到密码仍然存在于历史记录中 - 删除它的最佳方法是什么?
我在Github上阅读了删除敏感数据页面,建议更改密码 - 我已经完成了 - 但我也想删除历史记录.
Tim*_*sen 55
由于自提交包含明文密码以来您已经进行了5次提交,因此最好git rebase -i
在本地分支上以交互模式进行.找到添加明文密码的提交的SHA-1,然后键入以下内容:
git rebase --interactive dba507c^
Run Code Online (Sandbox Code Playgroud)
dba507c
用于错误提交的SHA-1的前7个字符在哪里.
改变这个:
pick dba507c comment for commit containing clear text password
Run Code Online (Sandbox Code Playgroud)
对此:
edit dba507c I have removed the clear text password
Run Code Online (Sandbox Code Playgroud)
对密码文件进行更改以删除明文,然后按如下方式提交结果:
git commit --all --amend --no-edit
git rebase --continue
Run Code Online (Sandbox Code Playgroud)
完成rebase,然后通过以下方式将您的(正确的)本地分支推送到远程:
git push -f origin your_branch
Run Code Online (Sandbox Code Playgroud)
您需要强制推送,your_branch
因为您已重写历史记录(通过修改密码文件).现在您已经拥有了所有最新的提交,但是您已删除了明文.
hek*_*mgl 14
如果是以前的提交,则从文件中删除密码并运行
git add file_with_pwd
git commit --amend
git push -f origin master
Run Code Online (Sandbox Code Playgroud)
注意:一旦你在Stackoverflow上发布了这个,很多人可能已经克隆了repo(你在github和只有一个存储库上有相同的用户名).更改密码!
归档时间: |
|
查看次数: |
11492 次 |
最近记录: |