如何将分支的提交变基并压缩到主干?

问题描述 投票:0回答:2

我正在尝试将我的所有提交从当前分支重新设置并压缩到主分支。这就是我正在尝试做的事情:

git checkout -b new-feature

做出一些承诺,之后我尝试:

git rebase -i master

在这种情况下,提交将保留在

new-feature
分支中

git checkout master
git rebase -i new-feature

它为我提供了带有 noop 消息的编辑窗口。

我了解命令:

git merge --squash new-feature

但我目前正在学习

rebase
命令。

git branch rebase squash
2个回答
62
投票

让我们完成这些步骤。

1 - 我们创建一个新的功能分支

git checkout -b new-feature

2 - 现在您可以在新分支上添加/删除和更新您想要的任何内容

git add <new-file>
git commit -am "Added new file"
git rm <file-name>
git commit -am "Removed a file"
cat "add more stuff to file" >> <new-file>
git commit -am "Updated files"

3 - 接下来,选择所有提交并将其压缩为一条漂亮的提交消息

git rebase -i master

这里您需要记住的关键是将第一次提交后所有提交的“pick”文本更改为“squash”。 这会将所有提交压缩到您的主分支。

4 - 选择主分支

git checkout master

5 - 将 HEAD 和 master 分支移动到新功能所在的位置:

git rebase new-feature

您可以尝试此可视化工具中的所有命令: http://pcottle.github.io/learnGitBranching/


7
投票

变基时,Git 不会将提交移动到另一个分支。它将移动该分支,包括其所有提交。如果您想在重新建立基础后将提交提交到 master 中,请使用

git merge <branch tip or commit of branch>
将 master 分支快进到该提交。

© www.soinside.com 2019 - 2024. All rights reserved.