3

我们正在学习 Git,我们使用 GitHub 作为我们的托管站点。

我们都分叉了upstreamrepo 并 PR 我们的提交upstream以获取我们的更改。

我们正在尝试学习如何压缩我们的提交以保持上游提交历史的整洁(ish)。

我们经常承诺:)

所以......如果我们提交一个拉取请求......然后项目维护人员然后在提交上添加评论(即对 PR 进行代码审查)......然后开发人员将解决问题并推动他们再次提交。

是否可以压缩这些提交以使 PR 只有一个提交?GH 中的评论(针对此 PR)会发生什么?

4

2 回答 2

0

您将不得不git push --force(在rebase squash local之后:选择第一个提交,在其他提交上放置一个“s”标记)。

但是PR仍然有效。它的相关历史记录将更新为刚刚推送的历史记录(这里是一个压缩提交)

谁执行这些命令?提交 PR/额外提交的人?还是审稿人?

分叉的所有者根据需要多次推送:评论不会被销毁,实际上将成为压缩提交的一部分。
以前属于 PR 的提交将被标记为“过时”,替换为您刚刚推送的新提交。
然后,维护者将能够合并压缩的历史记录。

于 2015-11-07T02:32:54.030 回答
0

将提交压缩在一起:

git rebase -i upstream/master

-i激活交互模式,您将能够为每个提交决定是否要将其与其父级一起压缩(称为“fixup”),或者是否要编辑提交消息(称为“reword”),或者是否您想在提交中添加/删除/更新文件(称为“编辑”)。

完成变基后,您将不得不强制推送:

git push -f

但是,我认为这会破坏审稿人对 PR 的评论。

于 2015-11-07T02:34:48.120 回答