合并连续推送到单个代码审查

时间:2018-09-24 03:13:22

标签: git visual-studio merge pull-request

如果我们在推送分支进行审查后进行了一些更改,然后发现了一些小错误,例如注释错字,并对其进行了更改(或任何更改),然后进行了推送。是否可以将这两个(或视情况而定)迭代合并为一个迭代以供查看。

我要解决的问题是,当审阅者查看代码并注意到两个迭代时,他们可能会想比较最后两个,但实际上应该将两个迭代合并在一起,然后与前一个进行比较。

除了Developer的预防措施外,Git是否提供任何选项将连续的推送合并为一个。

1 个答案:

答案 0 :(得分:0)

不用git rebasegit merge --squash,就可以很容易地做到这一点。在下面的示例中,我压缩了最后2次提交。

如果您想从头开始编写新的提交消息,则足以:

git reset --soft HEAD~2 &&
git commit

如果您要开始编辑带有现有提交消息的串联的新提交消息(即类似于“ pick / squash / squash /…/ squash git rebase -i”指令列表的开头),则您需要提取这些消息并将其传递给git commit

git reset --soft HEAD~2 && 
git commit --edit -m"$(git log --format=%B --reverse HEAD..HEAD@{1})"

这两个方法都将最后两个提交以相同的方式压缩为一个新的提交。软重置只是将HEAD重新指向您不想挤压的最后一次提交。软复位既不会触及索引也不会影响工作树,而是使索引处于您的新提交所需的状态(即,它已经具有将要“丢弃”的提交中的所有更改)。

根据您的情况,您可以选择是否要发表评论或上传评论并提交。