2017-07-30 133 views
2

在GitHub上,我分配了一个存储库并克隆在我的电脑上。然后,为了测试目的,我编辑了一个文件,进行了提交并将其推送到GitHub。但是现在我想完全删除这个提交。如何从GitHub完全删除提交?

我做了以下内容:

git reset --hard <sha1_of_previous_commit> 
git push --force 

它看起来不错,但我提交仍然可以访问GitHub上的URL与我犯SHA1。所以我删除了GitHub上的存储库,然后这个URL就是说没有找到。

但是,如果我再次分派相同的存储库,我的提交可以通过此URL再次访问。请帮助我,我该如何摆脱这种承诺?

+0

出于安全考虑,如果此文件包含密码等任何明智信息,我建议您立即更改它们。 – HeroicKatora

+0

[删除敏感文件及其从Git历史提交](https://stackoverflow.com/questions/872565/remove-sensitive-files-and-their-commits-from-git-history) – phd

+0

不,它不包含任何敏感信息,但我仍想删除它。 – noone

回答

1

提交可能总是可以通过URL访问。但它没有在Github上显示,所以我不明白这是一个问题,除非它包含敏感信息。

后续提交将具有独特的哈希值。

1

的“Removing sensitive data from a repository”上说得十分明白:

需要注意的是这些提交可能仍然是任何克隆或你的资料库叉访问,直接通过在缓存视图的SHA-1哈希值是非常重要的在GitHub上,并通过任何引用它们的请求。
您无法对存储库的现有克隆或分支做任何事情,但可以通过联系GitHub支持来永久移除所有存储库的缓存视图并在GitHub上提出请求。

在你的情况,有(希望)无叉/克隆,但是你必须联系GitHub的支持,在他们的版本回购的要求GC,为了使承诺是不再可用通过它的SHA1 URL。

0

这工作对我来说:

我都头重的要数由2

git reset --hard HEAD~2 

提交回力把我支到远程通过

git push -f origin my_branch_name 

我无法看到远程回购提交的任何痕迹。