Git 挤压在合并来自单独分支的分支时提交

Git 挤压在合并来自单独分支的分支时提交,git,branch,git-fork,squash,Git,Branch,Git Fork,Squash,如何将fork中的分支合并到当前的master,同时压缩提交,而不要求fork维护人员为我这样做 例如,如果我的项目位于acme/helloworld:master,分支位于coyote/helloworld:patch,并且patch分支有10个额外提交,如何在一次提交中合并coyote/helloworld:patch到acme/helloworld:master,而无需fork所有者的任何干预?如果只想在一次提交中合并 有几种方法可以执行此操作。例如,您可以使用一个名为git-rebase

如何将fork中的分支合并到当前的
master
,同时压缩提交,而不要求fork维护人员为我这样做


例如,如果我的项目位于
acme/helloworld:master
,分支位于
coyote/helloworld:patch
,并且
patch
分支有10个额外提交,如何在一次提交中合并
coyote/helloworld:patch
acme/helloworld:master
,而无需fork所有者的任何干预?

如果只想在一次提交中合并

有几种方法可以执行此操作。例如,您可以使用一个名为git-rebase-i

使用rebase将打开一个交互式shell,它将帮助您将多个提交合并为一个提交,并将分支的头移动到主分支中的最新提交。例如,在您的情况下,可以使用以下命令

git checkout郊狼/地狱世界:补丁

这将打开一个文本编辑器,列出将要移动的所有提交

内容如下所示

为提交选择33d5b7a消息#1

为提交选择9480b3d消息#2

为提交选择5c67e61消息#3

此清单精确定义了执行重基后分支的外观。通过更改“拾取”命令和/或对条目重新排序,可以使分支的历史看起来像您想要的那样。例如,如果第二次提交修复了第一次提交中的一个小问题,您可以使用下面的fixup命令将其压缩为一次提交

为提交选择33d5b7a消息#1

修复提交的9480b3d消息#2

为提交选择5c67e61消息#3

当您保存并关闭该文件时,Git将根据您的指示执行重设基础


因此,它将重新设置基础,并在一次提交中合并提交。

如果您只想在一次提交中合并

有几种方法可以执行此操作。例如,您可以使用一个名为git-rebase-i

使用rebase将打开一个交互式shell,它将帮助您将多个提交合并为一个提交,并将分支的头移动到主分支中的最新提交。例如,在您的情况下,可以使用以下命令

git checkout郊狼/地狱世界:补丁

这将打开一个文本编辑器,列出将要移动的所有提交

内容如下所示

为提交选择33d5b7a消息#1

为提交选择9480b3d消息#2

为提交选择5c67e61消息#3

此清单精确定义了执行重基后分支的外观。通过更改“拾取”命令和/或对条目重新排序,可以使分支的历史看起来像您想要的那样。例如,如果第二次提交修复了第一次提交中的一个小问题,您可以使用下面的fixup命令将其压缩为一次提交

为提交选择33d5b7a消息#1

修复提交的9480b3d消息#2

为提交选择5c67e61消息#3

当您保存并关闭该文件时,Git将根据您的指示执行重设基础


因此,它将重新设置基础,并将提交合并到单个提交中。

git checkout master;git合并补丁——挤压;git提交
或git签出-b补丁集成;git复位头~10--软;git提交;git签出主机;git merge patch_in_one@ElpieKay我在寻找一种方法,将所有提交合并到一个分支中,并将其压缩两个小时,你的评论就成功了。你一定要把它变成一个答案。
git checkout master;git合并补丁——挤压;git提交
或git签出-b补丁集成;git复位头~10--软;git提交;git签出主机;git merge patch_in_one@ElpieKay我在寻找一种方法,将所有提交合并到一个分支中,并将其压缩两个小时,你的评论就成功了。你一定要把它做成一个答案。如果满意,请验证它并排名。如果满意,请验证它并排名