一尘不染

如何将多个提交合并到另一个分支上作为单个压缩提交?

git

我有一个远程 Git 服务器,这是我想要执行的场景:

对于每个错误/功能,我创建一个不同的 Git 分支

我继续使用非官方的 Git 消息在那个 Git 分支中提交我的代码

在顶级存储库中,我们必须使用官方 Git 消息对一个错误进行一次提交

那么如何将我的分支合并到远程分支,以便他们只为我的所有签入获得一次提交(我什至想为此提供提交消息)?


阅读 128

收藏
2022-02-22

共1个答案

一尘不染

假设您的错误修复分支被调用bugfix,并且您希望将其合并到master

git checkout master
git merge --squash bugfix
git commit

这将从bugfix分支中获取所有提交,将它们压缩为 1 个提交,并将其与您的master分支合并。


说明

git checkout master

切换到您的master分支。

git merge --squash bugfix

bugfix分支中获取所有提交并将其分组为与当前分支的 1 次提交。
(没有出现合并提交;您可以在提交之前手动解决冲突)

git commit

从合并的更改创建单个提交。

省略该-m参数可让您在完成提交之前修改包含来自压缩提交的每条消息的草稿提交消息。

2022-02-22