假设我有一个git repo与app.py
和我意外地包括一个API密钥(或其他秘密)在app.py
的明文提交,我还没有推到远程(让我们说在Github上)。
要在本地撤销和修复这个提交,我可以:
git reset --soft HEAD~1
# ...make changes to remove the plain-text API key from app.py
git add .
git commit -m "some message"
在本地,我仍然可以签出到ref,在那里我不小心提交了明文API密钥,并查看app.py
中的秘密:
git reflog
# look for ref where I accidentally committed API Key
git checkout <ref from above>
如果我推送删除明文API密钥的提交(即:从上面提交消息"some message
)到远程,远程是否仍然能够"看到"API密钥包含在明文中的引用?这个秘密可能最终在Github上(即使只是在他们的服务器上,不一定通过网站/公共api可见)?
提前感谢!
使用git gc
.
但是如果你推到远程回购,它们会随着时间的推移而消失。
更多信息在那里如何删除已删除的提交从分离头?
不。你的API密钥是安全的。
重置时,提交将被删除。