git 使用 squash 为拉取请求清理分支

git branch cleanup with squash for a pull request

我想为我拥有的分支 (uglyCommitsBranch) 创建拉取请求,但它有很多提交消息,我想将其压缩到一个提交中。
为此,我认为需要执行以下步骤:

git checkout master
git pull
git branch newFeature
git push origin newFeature
git checkout newFeature

现在我需要从 uglyCommitsBranch 中取出东西并将它们全部放入 newFeature,然后推送到 origin 进行代码审查。

我需要执行的下一个命令是什么运行?
我不确定如何 运行 变基命令并且害怕破坏 master

如果我目前在 newFeature 分支(清理分支 master),下一个命令是什么?

您不需要这样做:

只需留在 uglyCommitBranch 并执行 interactive rebase:清理你在那里的提交,然后强制推送该分支:你的拉取请求(如果它在 rebase 之前存在,则由该分支)将自行更新。
如果还没有 pull request,你仍然可以 push --force 只要没有其他人在 uglyCommitBranch 上工作(因为它是你的 fork)。


也就是说,如果您想留在 newFeature 分店,那么:

git merge --squash uglyCommitBranch

(如“How to use git merge --squash?”中所述)


或者自 2016 年 3 月起,您可以将 "commit squashing" 留给主要的回购维护者。
参见“”。