我想将存储库重置为其原始状态,以使其与我在Github上使用“创建新存储库”按钮(不包含任何提交)相同。我没有删除存储库并重新创建它的权限,是否有其他方法可以使远程存储库在推送一次后不包含任何提交?如果我尝试推送一个空的,无提交的仓库,则会得到error: src refspec master does not match any.
。
答案 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
,您不能将其删除。如果您真的需要所有这些东西,那么您必须重新开始。