普通贡献者不能直接向 ysyecust/lecture-to-notes 的 main 分支写入文件。
正确流程是:
贡献者自己的 Fork → Pull Request → 维护者审核并合并 → 网站发布
commit 请求合并 写入 main
- 仓库所有者或有 Write 权限的协作者可以直接 push。为了保留检查和审核记录, 课程资料仍建议通过分支和 Pull Request 提交。
- 普通贡献者在自己的 Fork 中 commit。他们提交 Pull Request 后,仍然没有 原仓库的写入权限。
- 自动检查只负责检查文件和生成报告,不会自动合并 Pull Request。
- 维护者决定合并、要求修改或关闭 Pull Request。只有合并后的内容会发布。
如果你第一次使用 GitHub,请按下面的网页步骤操作。GitHub 官方也提供了 Fork 说明 和 从 Fork 创建 Pull Request 的说明。
- 登录 GitHub,打开 https://github.com/ysyecust/lecture-to-notes。
- 点击右上角 Fork。
- 点击 Create fork。GitHub 会在你的账号下创建仓库副本:
https://github.com/<你的账号>/lecture-to-notes。
你接下来创建的 commit 都在这个副本中,不会直接改变本站仓库。
- 在你的 Fork 中打开
content/inbox/。 - 点击 Add file → Upload files。
- 选择要提交的 PDF。文件必须直接放在
content/inbox/下,不要再建子目录。 - 不要在同一个 Pull Request 中修改代码、课程清单或现有文件。
在 Commit changes 窗口中:
- 填写简短说明,例如
content: add CS336 lecture notes。 - 建议选择 Create a new branch for this commit and start a pull request。
- 如果 GitHub 只提供提交到你自己的
main,也可以继续;这是你的 Fork 的main,不是ysyecust/lecture-to-notes的main。 - 点击 Commit changes。
- 回到你的 Fork 首页,点击 Contribute → Open pull request。
- 检查页面顶部的目标和来源:
- base repository:
ysyecust/lecture-to-notes - base branch:
main - head repository:
<你的账号>/lecture-to-notes - compare branch:刚才保存 commit 的分支
- base repository:
- 选择 PDF contribution 模板。
- 填写课程信息并勾选全部确认项。
- 点击 Create pull request。
Pull Request 是“请求合并”,不是把仓库写权限交给贡献者。贡献者后续如果需要 修改文件,只需继续向自己 Fork 中的同一分支 push,Pull Request 会自动更新。
先在 GitHub 上 Fork 仓库,再运行:
git clone https://github.com/<你的账号>/lecture-to-notes.git
cd lecture-to-notes
git remote add upstream https://github.com/ysyecust/lecture-to-notes.git
git switch -c contribute/<课程简称>
cp /本地路径/lecture.pdf content/inbox/
git add content/inbox/lecture.pdf
git commit -m "content: add <课程名称> lecture notes"
git push -u origin contribute/<课程简称>然后打开你的 Fork,点击 Compare & pull request,目标选择
ysyecust/lecture-to-notes:main,再填写 PDF contribution 模板。
模板会要求以下信息:
- 课程或活动名称
- 学校或机构
- 学期或年份
- 讲次或主题
- 讲师
- 原始来源 URL
- 文件之间的关系,例如“前三讲分讲 PDF + 合集”
- 其他需要维护者知道的说明
来源信息不完整时,请说明哪些内容无法确认,不要猜测。
- 每个 Pull Request 添加 1–10 个 PDF。
- 单个 PDF 不超过 25 MiB。
- 一个 Pull Request 内的 PDF 合计不超过 100 MiB。
- 文件扩展名必须是小写
.pdf。 - 文件必须直接放在
content/inbox/下。 - 不要提交符号链接、压缩包、脚本,也不要修改或删除现有文件。
- 只提交你有权用于教育用途分享的资料。
这些限制只用于控制外部 Pull Request 的自动检查规模,不是网站课程数量或仓库总容量的上限。
自动检查会:
- 确认 Pull Request 只添加了允许的 PDF。
- 在断网、只读、非 root 的容器中检查 PDF 结构和活动内容。
- 解析标题和页数,计算 SHA-256,并生成第一页 WebP 预览。
- 把报告放在 Pull Request 的 GitHub Actions 运行记录中。
维护者审核来源和内容后,可以直接合并为“社区贡献”,也可以另行调整文件名、 课程归属和课程清单。未合并的 Pull Request 不会发布到网站。