前段时间我不小心向 BitBucket git 存储库提交了密码,在当前 master 后面有几个提交。虽然我后来通过不使用它提交来删除密码,但它仍然存在于过去的几次提交中。
我不介意在这些提交期间丢失更改的历史记录。我也不担心有人在提交密码时看到了密码,但我想删除此历史记录以避免将来出现问题。
采取什么步骤来确保在这些步骤之后,以后访问此 BitBucket 存储库的任何人都无法找到此密码?
假设我的提交(从最旧到最新)带有(假)SHA1:c001 c002 c003 c004
c002 和 c003 是我想完全删除的“坏”提交的哈希值。我希望 master 留在 c004 上,但是如果我让他们访问这个 repo,任何人都无法再访问 c002 和 c003。我尝试按照关于提供重置或变基的类似问题的说明进行操作,但无法使它们正常工作;我要么设法删除我机器上的提交,但无法推回 BitBucket,或者在搞砸后无法完全删除我的机器。
有人可以解释一下所需的步骤: 1. 从存储库的历史记录中删除 c002 和 c003 2. 确保它保存在 BitBucket 上,并且人们既不能在 BitBucket 的 GUI 中查看这些提交,也不能通过将存储库克隆到他们的机器来查看这些提交
我会很感激能解释命令的作用的答案,而不仅仅是编写一些对我有用或对我不起作用的神奇 git 命令。此外,这个问题是专门针对 BitBucket 的,以防某些事情可能是特定的......我在尝试将更改推送回 BitBucket 后,在进行本地回购后遇到了“更新被拒绝,因为您当前分支的尖端落后”的问题用 reset --hard 改变。在几次失败的尝试和对 git 文档的挫败之后,我决定问 SO。
.