1. 创建一个孤儿分支 (Orphan Branch)

这个命令会创建一个临时分支,它没有任何历史记录,但保留了你当前目录下的所有文件。

Bash

# 假设你想清理的分支是 main,我们先创建一个叫 temp 的新起点
git checkout --orphan latest_branch

2. 添加所有文件

将当前目录下的所有代码标记为“新提交”。

Bash

git add -A

3. 提交更改

这将成为你新历史中的“第一次提交”(Root Commit)。

Bash

git commit -am "Initial clean commit"

4. 删除旧的分支

现在你可以删掉那个带有沉重历史(比如那 700 万个对象)的旧分支了。

Bash

# 假设旧分支叫 main
git branch -D main

5. 重命名当前分支

将当前的临时分支重命名为原来的分支名。

Bash

git branch -m main

6. 强制推送到远程(慎重!)

如果你已经关联了远程仓库(GitHub/GitLab),你需要强制推送来覆盖远程的历史。 注意:这会删除远程上的所有历史记录,不可逆!

Bash

git push -f origin main