跳至内容
清除 Github 仓库全部 commit

清除 Github 仓库全部 commit

创建于 2024-09-11·更新于 2026-06-13

注意

此操作不可逆,会永久删除仓库的所有提交历史,请提前做好备份。

背景

当提交记录中包含隐私信息(如密钥、密码),或仓库因上传大量文件导致体积过大、拉取频繁出错时,可以通过清除全部提交历史来"瘦身"仓库,同时保留仓库本身(Star、Issues 等不受影响)。

以下两种方法均以 main 分支为例,操作前请先将仓库克隆到本地。

方法一:创建空白分支替换

通过 --orphan 创建一个没有历史的新分支,替换掉原来的 main

git checkout --orphan latest_branch  # 创建一个没有历史的新分支
git add -A  # 暂存所有文件
git commit -m "Initial commit"  # 创建初始提交
git branch -D main  # 删除本地的 main 分支
git branch -m main  # 将当前分支重命名为 main
git push -f origin main  # 强制推送到远程仓库,替换远程 main 分支

方法二:删除 .git 重新初始化

直接删除本地的 Git 历史,重新初始化一个全新的仓库:

rm -rf .git  # 删除本地 Git 仓库目录
git init  # 重新初始化一个新的 Git 仓库
git add -A  # 暂存所有文件
git commit -m "Initial commit"  # 创建初始提交
git push -f https://github.com/username/repo.git main  # 强制推送到远程仓库(需替换为实际仓库地址)

两种方法的区别

  • 方法一保留了本地 Git 配置(如 remote、branch tracking),操作更简单
  • 方法二完全重置仓库,但需要手动填写远程仓库地址,且会丢失所有本地 Git 配置

参考资料