清空 Git 提交记录(即重置仓库历史,保留当前文件状态但清除所有历史提交)可以通过以下步骤实现,操作前请务必备份备份代码,避免数据丢失:

操作步骤

  1. 创建一个新的 orphan 分支
    orphan 分支是一个没有任何提交历史的空分支:

    bash

    git checkout --orphan new_branch
    
  2. 添加所有文件到新分支
    将当前工作区的所有文件(保留现有内容)添加到暂存区:

    bash

    git add .
    
  3. 提交当前状态作为新分支的第一个提交
    这会成为新的 "初始提交":

    bash

    git commit -m "初始化仓库(清空历史后)"
    
  4. 删除原主分支
    假设原主分支是 main 或 master,先删除它:

    bash

    git branch -D main  # 或 git branch -D master
    
  5. 将新分支重命名为原主分支名
    让新分支替代原主分支:

    bash

    git branch -m main  # 或 git branch -m master
    
  6. 强制推送新历史到远程仓库
    由于本地历史已完全替换,需要强制覆盖远程仓库(此操作会彻底删除远程仓库的所有历史记录):

    bash

    git push -f origin main  # 或 git push -f origin master
    

注意事项

  1. 风险提示:此操作会彻底删除所有提交历史,且无法恢复,仅建议在确有必要时使用(如历史包含敏感信息)。
  2. 协作警告:如果是多人协作仓库,强制推送后其他开发者需重新克隆仓库,否则会出现历史冲突。
  3. 备份建议:操作前可通过 git clone <仓库地址> backup_repo 备份原仓库。

完成后,仓库会保留当前文件内容,但提交历史将被清空,仅有一个新的初始提交。

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐