尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
【原子提交:IDEA实践】
原子提交IDEA实践背景先前情况idea实际操作方式一Squash Commits方式二Undo Commit 后再 Commit方式三ResetReset注意事项push前操作后悔药——回到压缩整理提交记录之前背景临近发版某位老哥的个线上MR包含多个bug修复的commit记录合入master在uat环境验证发现需要回滚其中某个commit记录由于MR非原子性提交不能快速在线上进行revert操作需要手动修改执行bug commit记录再次发起MR耽误版本发布。于是这几个月小组内部开始推行原子性提交归纳如下一、所有的线上MR请求只能包含一个commit记录二、所有的MR只能关联一个业务单号bugfix/新需求先前情况一个线上MR包含十多个甚至几十个commit记录commit message 信息随意MR合入一个主分支如dev之后cherry pick 到其它主干分支如release或master若存在冲突解决冲突的成分较大容易导致主干分支的差异变大idea实践idea实际操作在平时的开发中一个任务往往会有多次提交以下图三个commit为例假设我们开发A功能每天下班前本地commit一下到了第三天改功能开发完毕自测基本没问题此时需要发起MR请求而本地个人分支存在三个commit记录下面将描述如何在发起MR之前整理本地个人分支commir记录本文所述的【原子提交】核心在于合并本地commit记录。方式一Squash CommitsShift 鼠标左键选择需要合并的本地commit记录修改压缩后的commit描述信息commit时间为最早的commit时间commit message为刚才修改的方式二Undo Commit 后再 Commit基于Squash Commits 前新建分支pine_tree_dev_undo_sample切换到该分支并且在Log过滤为该分支将需要处理的提交记录一个一个Undo Commit。可在Local Changes看到commit之前的变更文件将变更文件统一提交即可方式三Reset基于Squash Commits 前新建分支pine_tree_dev_reset_sample选择需要合并commit的前一个commit选择Reset选择Soft模式可在Local Changes看到commit之前的变更文件后面的操作与方式二一样将变更文件统一提交即可Reset注意事项确保需要合并的Commit都是本地个人分支的不要吧其他人已合入主分支的代码也Reset掉如果需要合并的多个Commit中间加杂着已经合入主分支的代码可以Rebase当前本地分支至主分支将个人的本地Commit记录提前若不慎将已经合入主分支的代码Reset可以参考后悔药push前操作update本地主分支将当前分支Rebase至本地主分支【若存在冲突则解决冲突】Rebase后将本地个人分支推送至远程【如果存在冲突则强制push】然后发起MR走合并流程此时我们的MR就是符合原子性的后悔药——回到压缩整理提交记录之前- 在控制台输入git reflog- 关注需要回退的目标commit hash按照格式git branch [branch_name] [commit_hash]执行git branch pine_tree_dev_rollback_squash 636f23f【执行这个指令会生成名为branch_name的新分支该分支最新的commit记录的commit_hash为指令中的commit_hash】Thanks all
RELATED

相关推荐

如何快速掌握开源光谱仪校准:面向初学者的完整指南

如何快速掌握开源光谱仪校准:面向初学者的完整指南

如何快速掌握开源光谱仪校准:面向初学者的完整指南 【免费下载链接】open-spectrometer-python Open Source Spectrometer Python Scripts 项目地址: https://gitcode.com/gh_mirrors/op/open-spectrometer-python 想要构建自己的光谱仪并准确测量物质的光谱…

📅 2026/7/20 6:00:01
终极B站广告跳过指南:3分钟学会小电视空降助手完整使用

终极B站广告跳过指南:3分钟学会小电视空降助手完整使用

终极B站广告跳过指南:3分钟学会小电视空降助手完整使用 【免费下载链接】BilibiliSponsorBlock 一款跳过小电视视频中恰饭片段的浏览器插件,移植自 SponsorBlock。A browser extension to skip sponsored segments in videos, ported from the SponsorBl…

📅 2026/7/19 13:05:51
Unsloth-Gemma-4-E4B-it-QAT-oQ4性能优化技巧:从128K上下文到推理加速的完整指南 [特殊字符]

Unsloth-Gemma-4-E4B-it-QAT-oQ4性能优化技巧:从128K上下文到推理加速的完整指南 [特殊字符]

Unsloth-Gemma-4-E4B-it-QAT-oQ4性能优化技巧:从128K上下文到推理加速的完整指南 🚀 【免费下载链接】unsloth-gemma-4-E4B-it-qat-oQ4 项目地址: https://ai.gitcode.com/hf_mirrors/mlx-community/unsloth-gemma-4-E4B-it-qat-oQ4 在当今AI模型…

📅 2026/9/8 6:53:08
MORE NEWS

更多资讯

📰

LeetCode-Go 题解:2166. Design Bitset —— 双数组懒翻转实现 O(1) 位集操作

LeetCode-Go 题解:2166. Design Bitset —— 双数组懒翻转实现 O(1) 位集操作 【免费下载链接】LeetCode-Go ✅ Solutions to LeetCode by Go, 100% test coverage, runtime beats 100% | LeetCode 题解 项目地址: https://gitcode.com/GitHub_Trending/le/LeetCo…

📰

碳交易与需求响应耦合的综合能源系统优化建模与求解

简介:围绕碳交易机制与需求响应双重约束下的综合能源系统优化运行,提供了一套完整的Matlab实现方案,面向电气工程、能源系统方向的研究者与工程师。资源共包含21个文件,以m源码为主(14个),辅以3…

📰

NocoBase nb scaffold migration 命令深度解析:从脚手架生成到插件迁移脚本原理

NocoBase nb scaffold migration 命令深度解析:从脚手架生成到插件迁移脚本原理 【免费下载链接】nocobase NocoBase is an open-source AI no-code platform for building business systems fast. Instead of generating everything from scratch, AI works on to…

📰

从 Live Search 到 Agentic Tools:@langchain/xai 集成包能力演进全解析

从 Live Search 到 Agentic Tools:langchain/xai 集成包能力演进全解析 【免费下载链接】langchainjs The agent engineering platform 项目地址: https://gitcode.com/GitHub_Trending/la/langchainjs 导读 langchain/xai 是 LangChain.js 官方的 xAI&…

📰

Multisim14数据库错误根源与Jet 3.x兼容性修复方案

1. 问题本质与典型现象还原:这不是软件崩溃,而是数据通道的“断联”你刚装好Multisim14,打开电路仿真界面,想调用预存的器件参数库或加载自定义的SPICE模型数据库——结果弹出一个刺眼的红色对话框:“访问数据库时发生…

📰

Backstage 从 SQLite 切换到 PostgreSQL:生产部署的数据库切换实践

Backstage 从 SQLite 切换到 PostgreSQL:生产部署的数据库切换实践 【免费下载链接】backstage Backstage is an open framework for building developer portals 项目地址: https://gitcode.com/GitHub_Trending/ba/backstage Backstage 默认使用内存版 SQL…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬