首页/开发/Git 与协作速查/会话解决与会话未解决提示
协作与代码评审75 条

会话解决与会话未解决提示

行内评论形成会话(conversation),处理完成后标记 Resolved;GitHub 可开启合并前必须解决全部会话,GitLab 类似设置按项目配置。

Git 与协作速查开发更新于 2026-10-13

会话解决是什么

评审中的行内评论会形成一条条讨论线程(GitHub 叫 conversation,GitLab 叫 discussion)。每条线程处理完之后可以标记为已解决(Resolve)。仓库可以开启「合并前必须解决全部会话」的强制项:只要还有未解决的线程,合并就会被拦住,避免意见没处理就悄悄合入。

基本信息

GitHub 操作Resolve conversation
GitHub 强制项Require conversation resolution before merging
GitLab 操作Resolve discussion
GitLab 强制项要求所有讨论解决后才能合并
作用把处理结论沉淀到讨论记录里

典型使用场景

  • 逐条回复评审意见后关闭对应会话,让评审形成闭环
  • 不接受某条建议时也写明理由再解决,保留取舍依据
  • 合并前核对是否还有未解决线程,避免漏改遗留问题
  • 交接或事后追溯时,用已解决会话还原当时的决策过程
  • 对同一处代码反复讨论时,用解决状态标记这一轮是否收口

核对与查看

核对与查看
gh pr view 128 --json reviewDecision,comments  # 查看评审结论与会话内容
gh pr checkout 128                             # 检出 PR 分支做本地核对
git log --oneline origin/main..HEAD             # 确认改动提交是否齐全
git diff origin/main...HEAD -- <文件>           # 只看被评论的那处改动

会话状态对照

状态含义对合并的影响
未解决意见尚未处理或尚未回复开启强制项时阻止合并
已解决已处理或已给出明确结论不阻止合并
已过期被评论的代码行在后续提交中已改动需人工确认是否仍需处理
对不接受的意见也要回复并关闭会话,把结论留在讨论里,便于后来人理解取舍。只点解决却不写原因,讨论记录会失真,看起来像把意见压下去了。
要求全部会话必须解决,适合公共库或安全敏感仓库;人数少的团队容易把它变成负担,也可以只在高风险目录对应的 PR 上启用。
开启这项要求之后,讨论数量会明显上升:把可以合并的同类意见写成一条评论,比逐行重复同一条建议更省事,会话也更容易收口。

易错点

  • 批量点解决而不回复原因,讨论记录失真,后来人无法判断意见是否真的被处理过
  • 被评论的代码在后续提交中被删掉,旧会话仍需明确结论,否则看起来像回避问题
  • 开启强制解决后忘记回复遗留会话,PR 会卡在无法合并的状态且提示不够直观
  • 把已解决理解成「必须照做」,不接受的意见也不敢关闭,线程长期悬空

数据来源与参考

  • GitHub Docs:Requiring conversation resolution
  • GitLab Docs:Resolve a discussion
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌