我错误地将数百次提交从我的本地仓库推送到新创建的github仓库。 如何清理/删除远程仓库上的所有这些提交,以便github repo在开始时是干净的?我也想在这些行动上失去历史。 我想这样做而不影响我当地的回购。
我无法删除分支,因为它是github主分支。
答案 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
那样:
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