如何从gitlab中完全删除提交?

kra*_*r65 6 git commit git-reset gitlab

我在git repo中提交了一个提交,并推送了它,但是不小心它包含了我们生产机器的一些密码。所以我删除了提交:

git reset --hard HEAD~1
git push --force
Run Code Online (Sandbox Code Playgroud)

确实确实从提交列表中删除了提交,但是gitlab上的提交网址仍然显示了提交的来源。

我不确定这是git仍将提交内容保存在gitlab服务器上,还是gitlab数据库以某种方式存储提交内容,但是我确实需要从gitlab服务器中完全删除该提交。

有谁知道从gitlab完全删除提交及其内容的方法吗?

nix*_*rfs 0

您可能应该首先查看 GitLab 存储库的 Web 界面。如果分支存在,您可以通过运行删除它

git push <remote> :<branch>
Run Code Online (Sandbox Code Playgroud)

这将替换<branch>指定远程处冒号之前的内容,即什么都没有。如果您无法使用 Web 界面检查分支是否位于远程,您应该能够获取所有分支或至少使用类似的git fetch命令列出它们,但不确定如何操作。

如果远程未列出分支,则您只有远程分支的本地副本,并且您应该能够使用以下命令删除该副本:

git branch -D <remote>/<branch>
Run Code Online (Sandbox Code Playgroud)

我不能代表 GitLab 的内部结构,所以我不能保证如果你这样做数据会被破坏,所以你应该按照已经建议的方式替换所有密码。