【问题标题】:Merge Successive Push into Single for Code Review将连续推送合并到 Single 以进行代码审查
【发布时间】:2018-09-24 03:13:21
【问题描述】:
如果我们在推送一个分支以供审查后进行了一些更改,然后发现了一些小错误,例如注释拼写错误,并对其进行更改(或任何更改)并推送。是否可以将这两个(或根据情况更多)迭代合并为一个以进行审查。
我要解决的问题是,当审阅者查看代码并注意到两次迭代时,他们可能会想比较最后两次,但实际上应该将两次迭代结合起来,然后与前一次进行比较。
除了来自开发者的预防措施,Git 是否提供任何选项将连续推送合并为一个。
【问题讨论】:
标签:
git
visual-studio
merge
pull-request
【解决方案1】:
没有git rebase 或git 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 重新指向您不想压缩的最后一次提交。软重置不会触及索引和工作树,从而使索引处于新提交所需的状态(即,它已经包含您即将“丢弃”的提交的所有更改)。
根据您的情况,您可以选择只是进行审核还是上传以供审核和提交。