我不小心从本地存储库推送了数百次提交到新创建的 GitHub 存储库。
如何在远程存储库中清除/删除所有这些提交,以便 GitHub 存储库像起始时一样干净?我还想失去那些操作的历史记录。
我希望在不影响本地存储库的情况下完成此操作。
由于它是 GitHub 主分支,因此我无法删除该分支。
你可以:
- 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提到:
如何将代码库恢复到第一个提交之前的状态,即我想要获取空的代码库,而不是回滚到先前的提交?
在这种情况下,创建一个新的本地代码库,进行第一次小的提交,然后push --force
该提交。
更普遍地说,当创建一个代码库时,我总是尝试在主分支上进行第一个小的初始提交,以便能够回到最小的提交,或者从该最小的提交开始一个新的分支(用于无关的开发工作)。
git add . && git commit
,但这个变体更好! - eckesgit push -f REMOTE COMMIT:BRANCH
origin
的分支master
撤销至提交ID为123456
的提交,您应该执行以下操作。git push -f origin 123456:master