Git 分支清理与 squash 用于拉取请求



我想为我拥有的分支(uglyCommitsBranch)创建一个拉取请求,但它有很多提交消息,我想挤进一个提交中。
为此,我认为需要采取以下步骤:

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

现在我需要从uglyCommitsBranch中获取内容并将它们全部放入newFeature,然后推送到源进行代码审查。

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

如果我当前在newFeature分支上(清除分支关闭master),那么完成此操作的下一个命令是什么?

你不需要这样做:

只需留在uglyCommitBranch并进行交互式变基:在那里清理您的提交,然后强制推送该分支:您的拉取请求(如果它在变基之前存在,则从该分支进行的 PR)将自行更新。
如果还没有拉取请求,只要没有其他人在处理uglyCommitBranch,您仍然可以push --force(因为它是您的分叉)。


话虽如此,如果您想留在newFeature分支机构,那么:

git merge --squash uglyCommitBranch

(如"如何使用git merge --squash


或者从 2016 年 3 月开始,您可以将"提交挤压"留给主存储库维护者。
请参阅"在审核评论后从 Web 界面提交拉取请求的 Github 壁球提交?

最新更新