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

时间:2011-07-27 10:07:52

标签: git github

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

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

2 个答案:

答案 0 :(得分: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

那样:

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

然而OP Martin提及:

  

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

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

答案 1 :(得分:2)

git push -f REMOTE COMMIT:BRANCH

例如,要强制远程master的分支origin进行撤消,直到您应该使用标识为123456的提交

git push -f origin 123456:master