是否可以从github存储库中删除所有提交?

时间:2019-07-09 19:03:55

标签: github

我想将存储库重置为其原始状态,以使其与我在Github上使用“创建新存储库”按钮(不包含任何提交)相同。我没有删除存储库并重新创建它的权限,是否有其他方法可以使远程存储库在推送一次后不包含任何提交?如果我尝试推送一个空的,无提交的仓库,则会得到error: src refspec master does not match any.

1 个答案:

答案 0 :(得分:1)

可以删除与存储库相关的所有提交,但不能删除所有问题并提取请求。如果您需要完全干净的存储库,则必须将其删除并重新启动。

如果只需要删除提交,则可以通过运行以下命令来删除所有引用:

git for-each-ref refs/heads/* refs/tags/* | awk '{print $3}' | xargs -L1 git push -d origin

这将尝试删除系统上服务器上的所有引用。使用默认分支(通常为master)进行引用将失败。

然后,使用API​​删除默认分支(在这种情况下为master)(请注意,您将需要使用个人访问令牌代替文本TOKEN):

curl -v -u token:TOKEN https://api.github.com/repos/bk2204/test-repo/git/refs/heads/master

您应该用自己的仓库而不是bk2204/test-repo。这将删除最后剩余的参考,这将使您没有任何分支或标签。

请注意,存储库仍将具有对拉取请求的引用,例如refs/pull/1/head,您不能将其删除。如果您真的需要所有这些东西,那么您必须重新开始。