Skip to content

清空 Git 仓库的提交记录

要清空 Git 仓库的提交记录(即删除所有历史记录,只保留当前代码快照),请按以下步骤操作:


方法一:使用孤立分支(推荐)

bash
# 1. 进入项目目录
cd your-repo/

# 2. 创建一个孤立分支(无历史记录)
git checkout --orphan latest_branch

# 3. 添加所有文件到新分支
git add -A

# 4. 提交初始版本
git commit -m "Initial commit (clean history)"

# 5. 删除原主分支(如 master/main)
git branch -D master  # 或 git branch -D main

# 6. 重命名当前分支为主分支
git branch -m master  # 或 main

# 7. 强制推送覆盖远程仓库
git push -f origin master  # 或 main

方法二:删除 .git 文件夹(彻底重置)

bash
# 1. 删除本地 .git 目录
rm -rf .git

# 2. 重新初始化仓库
git init

# 3. 添加文件并提交
git add .
git commit -m "Initial commit (clean history)"

# 4. 关联远程仓库
git remote add origin <远程仓库URL>

# 5. 强制推送到远程
git push -u -f origin master  # 或 main

⚠️ 重要注意事项:

  1. 强制推送风险git push -f 会覆盖远程历史,若多人协作需提前通知所有成员。
  2. 备份历史:操作前确保已备份重要提交记录(如克隆仓库到其他目录)。
  3. 分支保护:若远程分支有保护规则,需先在 Git 平台(GitHub/GitLab)临时关闭保护。
  4. 标签/其他分支:上述操作仅影响当前分支,需手动删除其他分支和标签:
    bash
    git push origin --delete <其他分支>  # 删除远程分支
    git tag | xargs git tag -d && git push origin --delete --tags  # 删除所有标签

效果说明:

  • 操作后仓库将只保留一次提交,历史记录完全消失。
  • 代码文件内容与清空前的最新版本保持一致。

建议优先使用方法一(孤立分支),它更安全且能保留 Git 配置。如果是全新项目或需要彻底重置,可用方法二。

Released under the MIT License.