Mat*_*ias 5 git security github
我不小心提交了一些可能是git中的感知信息(仅在本地),我想以简单的方式将其从git历史中删除.将
git reset --soft HEAD~1
Run Code Online (Sandbox Code Playgroud)
然后取消分析感知信息并添加到gitignore足以将其从git历史中完全删除?
不,软重置是不够的。这样做会将文件保留在您的索引中(您暂存要提交的文件)。这意味着,该 git 仍在跟踪该文件。
您将需要进行混合重置,这也会取消暂存这些文件。正如 René 指出的那样,删除文件或将其添加到您的文件中也是一个好主意,.gitignore这样您就不会不小心再次提交它。
这足以使敏感信息不会传输到git push.
但是,该信息仍在您的本地存储库中。如果您因意外重置太远而“丢失”提交,git reflog是一个非常有用的工具。
现在清除所有无法通过分支或标签访问的提交:
git reflog expire --expire=1.minute --all
git prune
git gc
Run Code Online (Sandbox Code Playgroud)
reflog expire并且prune是破坏性的操作。我建议--dry-run首先使用参数运行这些命令,以查看究竟删除了什么。
| 归档时间: |
|
| 查看次数: |
2704 次 |
| 最近记录: |