git 保留最新的代码,删除所有历史commit

在 Git 中,如果你想要保留最新的提交(即 HEAD 提交),并删除所有之前的提交历史,可以使用以下方法。这种操作将创建一个全新的仓库历史,只包含当前的最新状态。

请注意,这个操作是破坏性的,并且会永久丢失所有的历史提交记录。确保在执行这些步骤之前已经备份了重要的数据或分支。

步骤:
创建一个新的空分支或引用:创建一个临时分支来保存当前的 HEAD 提交。

git checkout --orphan temp_branch

--orphan 选项会创建一个新的分支,这个分支没有父提交,因此它成为一个新的根提交。

添加所有文件到新的临时分支:因为我们现在在一个空的历史记录上,所以需要将所有文件重新添加到这个新分支。

git add -A
git commit --allow-empty -m "Initial commit"

-A 选项会添加所有文件(包括新的、删除的、修改的)。
--allow-empty 选项允许在没有任何变化的情况下进行提交(在首次提交时可能需要)。

删除旧分支:假设原来的主分支是 main 或 master,可以删除这些分支。不过要小心,这些分支的历史将被删除。

git branch -D main  # 或 git branch -D master,取决于你的主分支名称

-D 选项会在分支已经合并到当前分支时删除它。如果分支没有合并,你可能需要使用 -r(强制删除)选项:

git branch -rD origin/main  # 删除远程分支
git branch -D main          # 删除本地分支

重命名临时分支:将临时分支重命名为你的主分支名称。

git checkout temp_branch
git branch -m main          # 或 git branch -m master

更新远程仓库(如果适用):如果你在一个团队协作的环境中,还需要更新远程仓库。

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

--force 选项是必需的,因为你已经更改了历史记录。

posted @   漫漫长夜何时休  阅读(64)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· winform 绘制太阳,地球,月球 运作规律
· 上周热点回顾(3.3-3.9)
历史上的今天:
2021-01-07 现代管理理论与技术-网络分析-参考
2021-01-07 现代管理理论与技术-目标规划-参考
2021-01-07 现代管理理论与技术-整数规划-参考
2021-01-07 现代管理理论与技术-运输问题-参考
2021-01-07 现代管理理论与技术-对偶规划-参考
2021-01-07 现代管理理论与技术-线性规划-参考
点击右上角即可分享
微信分享提示