拉取请求与讨论
Hub 的拉取请求与讨论功能允许用户向仓库进行社区贡献。它们在所有仓库类型中工作方式一致。
总体而言,其目标是构建一个比其他 Git 托管平台(如 GitHub)的 PR 与 Issues 更简洁的版本:
- 不涉及 fork:贡献者直接向源仓库的特殊
ref分支推送。 - 讨论与 PR 没有硬性区分:二者本质相同,因此显示在同一列表中。
- 针对机器学习场景进行了简化(即模型/数据集/Spaces 仓库),而非任意仓库。
注意,可在仓库设置中启用或禁用拉取请求与讨论功能。
列表
进入任一仓库的 community 标签页,即可看到所有讨论与拉取请求。你也可以筛选仅查看打开状态的条目。


查看
在讨论页面,你可以看到不同用户的评论。如果是拉取请求,可通过 “Files changed” 标签查看全部变更。


编辑讨论 / 拉取请求标题
如果是你发起的 PR 或讨论,或你是仓库作者(拥有写入权限),可点击铅笔按钮编辑标题。
置顶讨论 / 拉取请求
若你拥有仓库写入权限,可将讨论与拉取请求置顶。置顶后的讨论会显示在列表顶部。




锁定讨论 / 拉取请求
拥有写入权限的用户还可以锁定讨论或拉取请求。锁定后,已有评论仍可见,但用户无法再添加新评论。




评论编辑与管理
如果你撰写了评论或拥有仓库写入权限,可在评论框右上角的上下文菜单中编辑评论内容。




评论被编辑后,评论上方会出现一个新链接,用于查看编辑历史。




你也可以隐藏评论。隐藏操作不可逆,之后无人能够查看或编辑该评论内容。


更多举报违规评论的方式,请参阅内容审核。
评论与讨论支持 Markdown 和 LaTeX 吗?
当然!你可以使用 Markdown 为评论添加格式。还可以使用 LaTeX 输入数学公式,系统会在 Markdown 解析前通过 KaTeX 渲染。
书写 LaTeX 方程需使用以下定界符 :
$$ ... $$:显示模式\(...\):行内模式(斜杠与括号之间不留空格)
如何在本地管理拉取请求?
假设你的 PR 编号为 42。
git fetch origin refs/pr/42:pr/42
git checkout pr/42
# 修改内容
git add .
git commit -m "Add your change"
git push origin pr/42:refs/pr/42
草稿模式
在 “Advanced mode” 中从零创建新 PR 时,默认状态为草稿。该状态下,协作者知道你的 PR 仍在进行中,无法合并。分支准备就绪后,点击 “Publish” 按钮将状态改为 “Open”。注意,一旦发布就无法回到草稿模式。
拉取请求高级用法
更改存储在 Git 仓库的哪个位置?
我们的 PR 不使用 fork 与常规分支,而是采用存放于源仓库中的自定义 “分支” —— refs。
Git 引用(Git References) 是 Git 内部存储标签与分支的机制。
使用自定义 refs(如 refs/pr/42)而非分支的好处在于:默认情况下克隆仓库的人(包括仓库所有者)不会自动抓取这些 refs,但可按需获取。
抓取所有拉取请求:献给 Git 高手们 🧙♀️
你可以调整本地 refspec 以抓取所有 PR:
- 抓取
git fetch origin refs/pr/*:refs/remotes/origin/pr/*
- 创建跟踪该 ref 的本地分支
git checkout pr/{PR_NUMBER}
# 例如:git checkout pr/42
- 如果进行了本地修改,推送到 PR ref:
git push origin pr/{PR_NUMBER}:refs/pr/{PR_NUMBER}
# 例如:git push origin pr/42:refs/pr/42