如何在合并前清理拉取请求?
How to clean a pull-request before merging?
我有一个关于 GitHub 上的拉取请求机制的问题。
Bob 在其分支中提交了一些更改:
* Added feature foo
* Added feature bar
* Removed latency in baz
然后他创建了一个 PR。 Alice等人拒绝了PR,要求改。 Bob 添加新提交
* !fixup Added feature foo
* !fixup Added feature bar
* cosmetic change
他们又不高兴了,他们要求更多的改变,所以 Bob 很生气
* Again some change, please accept my PR
* Damned, I forgot this...
最后我们得到了每个人都同意的东西,但是我们有嘈杂的提交。所以剩下三个选项:
- 我们接受 PR,但所有这些提交变得丑陋
- Bob
rebase -i
和 push -f --force-with-lease
(但是 PR 会怎样?)
- Bob 关闭了 PR,
rebase -i
在一个新的分支上然后创建了一个新的 PR。
最好的选择是什么?
P.S。 squash
不是一个选项,因为我们想要 rebase
拉取请求并保留具有 foo
、bar
和延迟问题修复的最初三个提交。
第二个选项看起来不错。拉取请求将使用来自 rebase -i
操作的新提交进行更新,替换之前的提交。这些新的提交将出现在对拉取请求的最后评论之后,这让审阅者知道有新的提交要审阅(至少检查它与以前的内容相同)。
我有一个关于 GitHub 上的拉取请求机制的问题。
Bob 在其分支中提交了一些更改:
* Added feature foo
* Added feature bar
* Removed latency in baz
然后他创建了一个 PR。 Alice等人拒绝了PR,要求改。 Bob 添加新提交
* !fixup Added feature foo
* !fixup Added feature bar
* cosmetic change
他们又不高兴了,他们要求更多的改变,所以 Bob 很生气
* Again some change, please accept my PR
* Damned, I forgot this...
最后我们得到了每个人都同意的东西,但是我们有嘈杂的提交。所以剩下三个选项:
- 我们接受 PR,但所有这些提交变得丑陋
- Bob
rebase -i
和push -f --force-with-lease
(但是 PR 会怎样?) - Bob 关闭了 PR,
rebase -i
在一个新的分支上然后创建了一个新的 PR。
最好的选择是什么?
P.S。 squash
不是一个选项,因为我们想要 rebase
拉取请求并保留具有 foo
、bar
和延迟问题修复的最初三个提交。
第二个选项看起来不错。拉取请求将使用来自 rebase -i
操作的新提交进行更新,替换之前的提交。这些新的提交将出现在对拉取请求的最后评论之后,这让审阅者知道有新的提交要审阅(至少检查它与以前的内容相同)。