git 回撤推送操作和回撤commit
背景:同一个分支上,比如做了10个功能,有10次提交记录,但是产品突然说后面的五个功能不要了
解决方案:git 的revert 命令。
git revert 命令的含义
git revert commitId
1.表示撤销某个提交,并不是说撤销至某个提交。
举个例子:
新增1.txt文件进行第一次提交,新增2.txt文件进行第二次提交;
此时使用 git log 命令找到第一次提交的 commitId,执行 git revert commitId,暂存区只会撤销新增的1.txt。
如果想要撤销多次提交怎么办?
典型的应用场景是某次提交后的n次提交都需要撤销;经过多次测试后,有两种方式可以解决。
第一种: 撤销1、2次左右的提交
直接一个个撤销吧,别多想。
1.找到要撤回的git操作,复制commitId
2.执行指令 git revert (如果代码区有没推送的代码,则不可以执行该指令)
3.执行成功,刷新源代码管理会有之前的代码,需要push上去覆盖没被撤回的代码
4.推送上去代表撤回成功
第二种: 撤销4、5次左右的提交
将 master 分支倒数第5次(含)至倒数第3次(含)提交撤销:
git revert -n master~5..master~2
将 master 分支最后5次(含)提交撤销:
git revert -n master~5..master
第三种: 撤销更多次的提交
第一步:假设 master 分支需要撤销至某个提交(假设提交id是 commitId,某个提交本身不撤销哦),从某个提交检出分支 dev;
git checkout commitId -b dev
第二步:切换至 master 分支,将在 master 分支中而不在 dev 分支中的提交撤销(一定要加 -n,表示撤销后不执行提交,否则你撤销几个提交就要执行几次提交):
git checkout master
git revert -n dev..master
第三步:git commit 即可,撤销完毕的 dev 分支可以删除。
总结
撤销多次提交,如果是肉眼可数的几次提交需要撤销就用第一种,如果是很多次提交数不过来的那种情况,就用第三种。
回撤commit
情况:当git commit之后发现commit错了信息,可以使用 git reset HEAD~1 则可回撤此次commit
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 为什么说在企业级应用开发中,后端往往是效率杀手?
· 本地部署DeepSeek后,没有好看的交互界面怎么行!
· 趁着过年的时候手搓了一个低代码框架
· 推荐一个DeepSeek 大模型的免费 API 项目!兼容OpenAI接口!
· 用 C# 插值字符串处理器写一个 sscanf