如何完全删除从 SourceTree (Windows) 到 Bitbucked 的推送
How to delete a push from SourceTree (Windows) to Bitbucked completely
我在 Windows 10 上使用 SourceTree 提交并推送两个文件,然后再提交 + 推送。
现在我注意到,第一次推送的其中一个文件的评论中有敏感信息。
我试图完全删除那个推送,所以它不会再存储在 bitbucked 中。
这是我目前在 git bash 控制台中所做的:
//Reset my local head: both achieved the same
git reset --hard MyLastGoodCommitHash
git reset --hard HEAD~2
//Now overwrite the original server content
git push -force
git gc
现在,如果我在 BitBucket 中查找提交,最后一个好的提交在头上,在 SourceTree origin/develop 中,开发在同一个好的提交上。此外,“git status”是干净且积极的。
但是在 SourceTree 中,我仍然可以看到我在那之后所做的其他两个提交,我可以检查它们。同样在 Bitbucked 中,如果我将搜索与不需要的提交的提交哈希一起使用,我仍然可以找到它们。所以它们实际上并没有被删除。
两个问题:
- 我如何真正删除 BitBucket 上的提交,以便再也找不到它的记录?我想对于 Admin Access 有一个内置的方式吗?
- 如何删除在 SourceTree 中看到的两个提交?或者如果我在 BitBucked 上删除它们,它们最终会消失吗?
当您执行 reset --hard
时,您 孤立了 不需要的提交,这意味着没有分支名称指向它们。 (我在这里假设也没有标签名称指向它们;如果是,您需要单独删除该标签。)
然后当你用力推动时,你将这种情况反映到 BitBucket。
到目前为止,还不错。但是孤儿提交不会立即被销毁。如果你想要那个,你需要说
git gc --prune=now --aggressive
这应该将提交从本地 Git(包括 Sourcetree)的范围内移除。但它并不强制 BitBucket 的 Git 执行相同的操作。如果这是一个严重的问题,您可能需要向 BitBucket 人员开具一张票,以便让他们为您做这件事。
我在 Windows 10 上使用 SourceTree 提交并推送两个文件,然后再提交 + 推送。 现在我注意到,第一次推送的其中一个文件的评论中有敏感信息。 我试图完全删除那个推送,所以它不会再存储在 bitbucked 中。
这是我目前在 git bash 控制台中所做的:
//Reset my local head: both achieved the same
git reset --hard MyLastGoodCommitHash
git reset --hard HEAD~2
//Now overwrite the original server content
git push -force
git gc
现在,如果我在 BitBucket 中查找提交,最后一个好的提交在头上,在 SourceTree origin/develop 中,开发在同一个好的提交上。此外,“git status”是干净且积极的。 但是在 SourceTree 中,我仍然可以看到我在那之后所做的其他两个提交,我可以检查它们。同样在 Bitbucked 中,如果我将搜索与不需要的提交的提交哈希一起使用,我仍然可以找到它们。所以它们实际上并没有被删除。
两个问题:
- 我如何真正删除 BitBucket 上的提交,以便再也找不到它的记录?我想对于 Admin Access 有一个内置的方式吗?
- 如何删除在 SourceTree 中看到的两个提交?或者如果我在 BitBucked 上删除它们,它们最终会消失吗?
当您执行 reset --hard
时,您 孤立了 不需要的提交,这意味着没有分支名称指向它们。 (我在这里假设也没有标签名称指向它们;如果是,您需要单独删除该标签。)
然后当你用力推动时,你将这种情况反映到 BitBucket。
到目前为止,还不错。但是孤儿提交不会立即被销毁。如果你想要那个,你需要说
git gc --prune=now --aggressive
这应该将提交从本地 Git(包括 Sourcetree)的范围内移除。但它并不强制 BitBucket 的 Git 执行相同的操作。如果这是一个严重的问题,您可能需要向 BitBucket 人员开具一张票,以便让他们为您做这件事。