{"meta":{"title":"排查堆积拉取请求问题","intro":"解决堆积拉取请求的常见问题，包括重新数据库冲突、阻止合并、中断的操作和合并队列问题。","product":"拉取请求","breadcrumbs":[{"href":"/zh/pull-requests","title":"拉取请求"},{"href":"/zh/pull-requests/how-tos","title":"How-tos"},{"href":"/zh/pull-requests/how-tos/merge-and-close-pull-requests","title":"合并并关闭"},{"href":"/zh/pull-requests/how-tos/merge-and-close-pull-requests/troubleshooting-stacked-pull-requests","title":"对堆积 PR 进行故障排除"}],"documentType":"article"},"body":"# 排查堆积拉取请求问题\n\n解决堆积拉取请求的常见问题，包括重新数据库冲突、阻止合并、中断的操作和合并队列问题。\n\n> \\[!NOTE] 此功能以公共预览版提供，可能会发生更改。\n\n本文介绍使用堆积拉取请求时可能会遇到的常见问题，以及如何解决这些问题。\n\n## 存储库报告冲突\n\n当级联存储库遇到冲突时， `gh stack rebase` 停止并列出冲突的文件。\n\n若要解决冲突并继续：\n\n1. 打开每个冲突的文件并解决冲突标记（`<<<<<<<`、、`=======``>>>>>>>`）。\n\n2. 暂存已解析的文件。\n\n   ```shell\n   git add .\n   ```\n\n3. 继续重定基。 其余分支会自动重新定基。\n\n   ```shell\n   gh stack rebase --continue\n   ```\n\n如果冲突过于复杂或要重新开始，请中止重新数据库以将所有分支还原到其预重新数据库状态。\n\n```shell\ngh stack rebase --abort\n```\n\n## 由于冲突而停止同步\n\n如果在运行时 `gh stack sync`检测到冲突，所有分支将还原到其原始状态，因此不会部分更新任何分支。 通过直接运行存储库以交互方式解决冲突，然后推送更新的分支。\n\n```shell\ngh stack rebase\ngh stack push\n```\n\n## 修改会话不会启动\n\n`gh stack modify` 需要干净启动状态。 如果它不会启动，请确认：\n\n* 已签出活动堆栈。\n* 工作树干净。\n* 没有正在进行的重新基。\n* 没有请求请求排队进行合并。\n* 提交历史记录是线性的。 如果不是，请先运行 `gh stack rebase` 。\n\n## 修改会话中断\n\n例如，如果 `gh stack modify` 由于不想解决的冲突或终端崩溃而中断，则可以将堆栈还原到启动前的状态。 预修改快照缓存在本地进行恢复。\n\n```shell\ngh stack modify --abort\n```\n\n如果应用更改时发生冲突，并且你想要继续前进，请解决冲突，暂存文件 `git add`，然后运行 `gh stack modify --continue`。\n\n## 拉取请求无法合并\n\n堆栈中的拉取请求只能在它之后合并，并且每个拉取请求都满足所有合并要求，并且堆栈具有完全线性的历史记录。 如果阻止合并，请检查：\n\n* 拉取请求及其下方的所有拉取请求都具有所需的评审和通过检查。\n* 堆栈具有线性历史记录。 如果更改被推送到下分支或中继向前移动，则历史记录可能不再是线性的。\n\n若要还原线性历史记录，请运行 `gh stack rebase` ，然后单击 `gh stack push`合并框中的 **Rebase 堆栈** 。 有关说明，请参阅“[管理堆积拉取请求](/zh/pull-requests/how-tos/create-pull-requests/managing-stacked-pull-requests)”。\n\n## 合并在堆栈中停止了部分路\n\n合并前检查在任何合并之前运行，但合并仍可能失败。 例如，由于发生意外冲突或间歇性故障。 如果失败在一定程度上发生，合并会在该拉取请求处停止。\n\n* 将请求拉取到合并成功保留在基分支上的请求。\n* 失败的拉取请求及其上方的拉取请求保持打开状态。\n\n解决失败拉取请求的问题，然后重试合并以将堆栈的其余部分搁置。\n\n## 从合并队列中删除了拉取请求\n\n堆栈保存在合并队列中。 如果从队列中删除或弹出拉取请求，则堆栈中上方的所有拉取请求也会弹出并删除。 解决基础问题后，将堆栈重新添加到队列。\n\n大型堆栈还可以在连续合并组之间拆分：合并队列允许合并组超过其配置的最大大小 50%，以将堆栈一起保留在一起，并且所有不适合在后续组中的拉取请求在完整堆栈降落之前继续。\n\n## 在堆栈中间关闭拉取请求\n\n关闭堆栈中间的拉取请求会阻止其上方的所有拉取请求可合并。 保留堆栈关系，因此若要打开不同的拉取请求或更改堆栈的结构，必须先解散堆栈，然后重新创建它。\n\n可以从网站取消堆栈， GitHub 或者使用 `gh stack modify`.. 取消堆栈仅删除打开、草稿和关闭的拉取请求;合并拉取请求和排队拉取请求保留在堆栈中。 请参阅 [管理堆积拉取请求](/zh/pull-requests/how-tos/create-pull-requests/managing-stacked-pull-requests#unstacking-from-the-github-website) 和 [管理堆积拉取请求](/zh/pull-requests/how-tos/create-pull-requests/managing-stacked-pull-requests#restructuring-a-stack)。\n\n## 重新数据库后未对提交进行签名\n\n从拉取请求触发的存储库在 GitHub服务器上运行，并且 **这些提交未** 签名。 如果存储库需要签名的提交，请改用存储库 GitHub CLI 。\n\n* 运行 `gh stack rebase` 使用本地 Git 操作，因此生成的提交遵循本地 Git 提交签名配置。\n* 重新分组后，使用 <c0 />\\<a0/\\&a0> 推送更新的分支。\n\n## 不能跨分叉创建堆栈\n\n堆积拉取请求要求所有分支都位于同一存储库中。 不支持跨分支堆栈。"}