2024-01-20 16:05:27 +00:00
|
|
|
|
---
|
|
|
|
|
title: 📗多个Git提交合并成一个提交
|
|
|
|
|
date: 2024-01-20
|
|
|
|
|
tags: Git
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
在日常开发feature之后会在自己开发的分支上留下许多提交记录,想在最后发版本提交
|
|
|
|
|
将多个提交合并成一个提交记录,显得规整一些。
|
|
|
|
|
|
|
|
|
|
查询相关资料之后,发现使用 git rebase 和 git squash 命令配合完成上述需求。
|
|
|
|
|
|
|
|
|
|
<!--more-->
|
|
|
|
|
|
|
|
|
|
以下将多个提交合并成一个提交记录步骤记录:
|
|
|
|
|
|
|
|
|
|
1. 首先,使用 git log 命令查看你要合并的提交记录的哈希值,确定需要合并的提交数量和顺序。
|
|
|
|
|
2. 运行 git rebase -i HEAD~n 命令,将 n 替换为要合并的提交数量。这将打开一个交互式 rebase 编辑器。
|
|
|
|
|
3. 在交互式 rebase 编辑器中,将需要合并的提交记录的 pick 关键字改为 squash 或 s。将要保留的最终提交记录保持为 pick。
|
|
|
|
|
4. 保存文件并关闭编辑器。然后,将会打开一个新的编辑器,用于编辑最终的合并提交记录的消息。在编辑器中,可以修改合并后的提交消息。
|
|
|
|
|
5. 保存文件并关闭编辑器。Git 将自动进行 rebase 操作,将多个提交合并成一个提交记录。
|
|
|
|
|
6. 依此循环上述步骤。
|
|
|
|
|
|
|
|
|
|
因为 git rebase 和 git squash 命令带来变基和修改历史记录影响,所以避免在公共分支上操作,比如develop,test等分支操作,以防将别人代码进行覆盖或删除。因此,只应该在本地仓库上进行此操作。
|
|
|
|
|
|
|
|
|
|
## 参考文献
|
|
|
|
|
|
|
|
|
|
1. [Git 合并多个 commit](https://segmentfault.com/a/1190000007748862)
|
2024-03-07 05:45:58 +00:00
|
|
|
|
2. [如何使用 git rebase 将多个 commit 合并成一个commit ]( https://juejin.cn/post/7050705771218075684)
|