如何从远程github仓库清除所有提交

Mar*_*tin 4 git github

我错误地将数百次提交从我的本地仓库推送到新创建的github仓库.如何清理/删除远程仓库上的所有这些提交,以便github repo在开始时是干净的?我也想在这些行动上失去历史.我想这样做而不影响我当地的回购.

我无法删除分支,因为它是github主分支.

Von*_*onC 10

你可以:

- git clone <your github repo>
- git reset --hard <an_older_commit> (where you didn't have those huge files)
- git push --force origin master
Run Code Online (Sandbox Code Playgroud)

那样:

  • 您的初始本地仓库不受影响(您可以修复它以便不再推送这些文件)
  • 你的远程(GitHub)仓库不再看到那些提交大量文件的提交.
  • GitHub将git gc定期运行,完全清除未引用的文件.

然而,OP Martin提到:

我怎么能reset --hard在第一次提交之前做到这个位置?
即我想让repo为空而不回滚到之前的提交

在这种情况下,创建一个新的本地仓库,进行第一次小型提交,然后push --force进行提交.
更一般地说,我总是尝试在创建repo时在master分支上进行第一次小的初始提交,以便能够返回到最小提交,或者从所述最小化开始新分支(用于不相关的开发工作)承诺.