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 选项是必需的,因为你已经更改了历史记录。
本文来自博客园,作者:漫漫长夜何时休,转载请注明原文链接:https://www.cnblogs.com/ag-chen/p/18658107
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!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 现代管理理论与技术-线性规划-参考