git rebase
https://blog.csdn.net/u013276277/article/details/82470177
在使用 Git 作为版本控制的时候,我们可能会由于各种各样的原因提交了许多临时的 commit,而这些 commit 拼接起来才是完整的任务。那么我们为了避免太多的 commit 而造成版本控制的混乱,通常我们推荐将这些 commit 合并成一个。
首先假设我们有3个 commit

git-log-origin.png
我们需要将 2dfbc7e8
和 c4e858b5
合并成一个 commit,那么我们输入如下命令

git-rebase-i.png
其中,-i
的参数是不需要合并的 commit 的 hash 值,这里指的是第一条 commit, 接着我们就进入到 vi
的编辑模式

git-rebase-edit.png
可以看到其中分为两个部分,上方未注释的部分是填写要执行的指令,而下方注释的部分则是指令的提示说明。指令部分中由前方的命令名称、commit hash 和 commit message 组成。
当前我们只要知道 pick
和 squash
这两个命令即可。
pick
的意思是要会执行这个 commitsquash
的意思是这个 commit 会被合并到前一个commit
我们将 c4e858b5
这个 commit 前方的命令改成 squash
或 s
,然后输入:wq
以保存并退出

git-rebase-squash.png
这是我们会看到 commit message 的编辑界面

git-rebase-commit-message.png
其中, 非注释部分就是两次的 commit message, 你要做的就是将这两个修改成新的 commit message。

git-rebase-commit-message-combination.png
输入wq
保存并推出, 再次输入git log
查看 commit 历史信息,你会发现这两个 commit 已经合并了。

git-rebase-log-new.png
注意事项:如果这个过程中有操作错误,可以使用 git rebase --abort
来撤销修改,回到没有开始操作合并之前的状态。
作者:_Ryeeeeee
链接:https://www.jianshu.com/p/964de879904a
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理