在使用git-merge过程中在master分支合并了另一个分支dev的多条记录-希望简化在master中的提交历史
Describe
在 dev
分支开发,提交了多次记录,完成后,希望合并到 master
分支。本希望合并最后的记录到 master 使得在 master 分支上的提交历史简洁,不包括 dev 分支上其他的的历史记录。
尝试使用 git merge dev
命令合并到 master 分支,意想不到的事情发生了,在 master 查看到的历史记录(使用 VScode 可视化提交记录插件)却包含 dev 分支上的其他历史。在 master 分支查看到的提提交线是交叉的。
To Reproduce
正常使用 git merge dev
命令执行合并分支命令。
Expected behavior
我希望或者能够从 dev 分支合并到 master分支,并且可以简化在 master 分支的提交记录(仅保留一个记录), 如下图所示
Screenshots
暂未记录
Environment / Version (please complete the following information):
- OS : windows10
- git : git version 2.30.0.windows.2
- node: v18.15.0
- npm: 9.5.0
Solution
如果想在合并 dev 分支到 master 的同时,将 dev 分支中提交简化为一条记录,使得在 master 分支提交历史简洁,可以使用 --squash
参数
$ git merrge --squash dev
如果不幸使用了 git merge dev
(不带 --squash
参数),导致 master 分支上包含了多余的 dev 分支的提交记录。
如果是刚刚的合并操作,则可以使用 git reset --hard HEAD^
来回退到上一个版本(即合并之前)的状态。然后再使用 git merge --squash dev