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

对于每个bug/功能,我创建一个不同的Git分支我继续在Git分支中提交我的代码,并发送非官方Git消息在顶级存储库中,我们必须使用官方Git消息对一个bug进行一次提交

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


当前回答

我知道这个问题不是专门针对Github的,但由于Github被广泛使用,这是我一直在寻找的答案,我将在这里分享。

Github能够执行压缩合并,这取决于为存储库启用的合并选项。

如果启用了挤压合并,“挤压并合并”选项将出现在“合并”按钮下的下拉列表中。

其他回答

使用自定义提交将newFeature分支合并到master中:

git merge --squash newFeature && git commit -m 'Your custom commit message';

如果相反,你会

git merge--压缩新功能和git提交

您将得到一条提交消息,其中包含所有newFeature分支提交,您可以自定义这些提交。

我在这里详细解释:https://youtu.be/FQNAIacelT4

假设您进行多次提交的分支的名称称为bugfix/123,并且您希望压缩这些提交。首先,从develop创建一个新分支(或者无论回购的名称是什么)。假设新分支的名称为bugfix/123_up。在gitbash中签出此分支-

git获取git checkout错误修复/123-upgitmerge错误修复/123--挤压gitcommit-m“您的消息”git推送原点错误修复/123-up

现在,该分支将只有一个提交,其中包含所有更改。

如果您已经在main上安装了gitmerge错误修复程序,可以使用以下命令将合并提交压缩为一个:

git reset --soft HEAD^1
git commit

您希望与挤压选项合并。这是如果你想一次做一个分支。

git merge --squash feature1

如果您希望在单个提交的同时合并所有分支,那么首先以交互方式重新设置基础并压缩每个功能,然后章鱼合并:

git checkout feature1
git rebase -i master

挤压成一个提交,然后重复其他功能。

git checkout master
git merge feature1 feature2 feature3 ...

最后一次合并是“章鱼合并”,因为它同时合并了许多分支。

我知道这个问题不是专门针对Github的,但由于Github被广泛使用,这是我一直在寻找的答案,我将在这里分享。

Github能够执行压缩合并,这取决于为存储库启用的合并选项。

如果启用了挤压合并,“挤压并合并”选项将出现在“合并”按钮下的下拉列表中。