跳到主要内容

Git 保留主分支的最近一次提交放弃之前所有的提交

· 阅读需 1 分钟
素明诚
Full stack development

切换到主分支: 确保你当前处于主分支

git checkout main

重置分支到最新的提交: 使用 git reset 命令将分支重置到最新的提交这里使用 --hard 选项,这将会重置工作目录和索引(暂存区)到你指定的提交

git reset --hard HEAD

删除旧的提交记录: 如果你想彻底删除除最新之外的所有提交记录,可以使用下面的步骤

警告:这将不可逆转地删除这些提交记录

git branch new-temp-branch $(git commit-tree HEAD^{tree} -m "New initial commit")
git checkout new-temp-branch
git branch -D main
git branch -m main

清理仓库: 运行垃圾回收命令来清理不再需要的对象(即旧的提交记录)

git gc --prune=now

推送变更到远程仓库: 如果你的分支是跟踪远程仓库的,你需要强制推送这些变更,覆盖之前所有的历史记录

git push origin main --force