如何在GitHub上预览PR合并结果及squash后的Git历史?
预览GitHub PR合并结果及Squash后的Git历史
一、预览PR的合并结果
网页端操作
- 打开目标PR页面,切换到Files changed标签,这里展示的就是PR合并到目标分支后的所有文件变更,直接就能看到合并后的代码差异。
- 在Conversation标签下,GitHub会自动检测合并冲突,没有冲突的话,点击合并按钮旁的下拉菜单选择合并方式,页面会实时展示对应方式下的合并效果,包括提交历史的结构预览。
本地操作(更精准)
- 切换到目标分支(比如main)并拉取最新代码:
git checkout main && git pull - 执行无提交的合并操作,把PR分支合并到本地目标分支:
git merge --no-commit --no-ff <PR分支名> - 此时可以用
git diff查看工作区的合并结果,或者用IDE直观查看文件变化。如果有冲突,Git会直接提示,你可以提前尝试解决。确认后放弃合并只需执行:git merge --abort
二、预览Squash后的Git历史状态
网页端操作
- 在PR页面的合并选项中选择Squash and merge,页面会弹出提交信息编辑框,同时展示squash后的历史预览:PR的多个提交会被压缩成一个新提交,追加到目标分支的历史末尾,你能直观看到这个新提交在历史中的位置。
本地操作(更详细)
- 拉取PR分支到本地并切换过去:
git fetch origin <PR分支名> && git checkout <PR分支名> - 切换到目标分支并拉取最新代码:
git checkout main && git pull - 执行squash合并但暂不提交:
git merge --squash <PR分支名> - 用
git diff --cached查看暂存的所有变更,确认和预期一致后,模拟生成squash提交:git commit -m "替换为你的squash提交信息" - 现在用
git log --oneline查看历史,就能看到压缩后的完整Git状态了——目标分支后跟着一个包含所有PR变更的新提交。如果不满意,撤销这次提交即可:git reset HEAD~1
内容的提问来源于stack exchange,提问作者Martel
相关产品推荐
相关产品推荐

