GitHub 仓库设置指南

以下操作均在 github.com 网页端进行,不需要写代码。


快速导航(Obsidian 中可点击跳转;下同)


1 仓库基础设置 ^nav-1

进入仓库后点击顶部 Settings tab。

改名 / 改描述 / 加 Topics

操作路径说明
改仓库名Settings → General → Repository name改后旧地址自动 301 跳转
改描述Settings → General → Description显示在仓库页顶部名称下方
加标签仓库页顶部齿轮图标 (齿轮图标) 或 Settings → General → Topicsc cpp algorithm 按回车添加

Topics 让其他人在 GitHub Explore 搜索标签时能搜到你的仓库。

切换可见性

Settings → Danger Zone → Change visibility
→ Make public / Make private → 输入仓库名确认
  • Public:任何人都能看见、clone、fork
  • Private:只有你和 Collaborator 能看见

归档 / 删除

操作位置后果
归档Settings → Danger Zone → Archive仓库只读,不能发 Issue/PR
删除Settings → Danger Zone → Delete不可恢复(关联的 Issues/PR/Wiki 全部丢失)

2 协作管理 ^nav-2

可见性切换(私⇄公)

Settings → Danger Zone → Change visibility
→ Change to public / Change to private
→ 输入仓库名确认
场景操作注意
个人项目想公开改为 Public任何人都能 clone/fork,此前 Issues 不变
公开项目想私有改为 Private已 fork 的副本不会被删除,但无法再公开访问

添加 Collaborator

进入目标仓库:

Settings → Collaborators → Add people
→ 输入对方 GitHub 用户名或邮箱
→ 选择权限 → Add
→ 对方会收到邀请邮件/通知,接受后即生效

权限三种:

权限说明
Read看代码、提 Issue、看 Discussions
Write可以 push 分支、提 PR、合并 PR
Admin所有操作,包括改仓库设置、删仓库、加人

批量加人: 如果团队超过 3 人,建议先创建 Organization(见下一节),用 Team 管理权限,而非逐个加 Collaborator。

创建组织 (Organization)

组织是 GitHub 上管理多人协作的标准方式,仓库归组织所有,不依赖个人账号。

创建步骤:

GitHub 右上角 + → New organization
→ 选 Free 方案(免费,无限协作)
→ 填写组织名(如 RootStack-Project,以后不可改)
→ 填写联系邮箱
→ 选择 "My personal account"(组织归属到你的账号下管理)
→ 可添加成员(可跳过,稍后在组织页加)
→ Complete setup

创建后你就是组织的 Owner(超级管理员)。

在组织下创建新仓库:

组织页 → Repositories tab → New repository
→ 填写仓库名、描述、可见性
→ 注意 Owner 已自动选的该组织名
→ Create repository

给组织添加成员:

组织页 → People → Invite member
→ 输入用户名或邮箱 → Invite
→ 对方接受后,你可以在 Teams 里给他分配权限

Teams(推荐): 在组织里建 Team 可以批量管理权限:

组织页 → Teams → New team
→ 填 team 名(如 "core-devs"、"contributors")
→ Add members → Add repositories(给这个 team 哪些仓库的什么权限)
→ 一个 team 的人自动获得相同权限,加人时直接加进 team 即可

转移仓库所有权(个人→组织)

把当前在你个人名下的仓库完整转给组织,包括 Issues、PR、Wiki、Stars 全部保留。

仓库页 → Settings → Danger Zone → Transfer ownership
→ 输入目标组织名(必须先创建好组织)
→ 输入仓库名确认
→ 输入 GitHub 密码确认

转移后你需要做的:

# 本地更新远程地址
git remote set-url origin https://github.com/组织名/仓库名.git
 
# 验证
git remote -v

转移后你在组织里默认还是 Admin,可以继续管理这个仓库。建议在组织里加一个 Team,把你自己和其他活跃成员放进去统一管理权限。


3 分支保护 ^nav-3

防止有人直接 push 到 clean-main 破坏历史:

Settings → Branches → Add branch protection rule
→ Branch name pattern: clean-main

推荐勾选:

选项作用
Require a pull request before merging禁止直接 push,必须先提 PR
Require approvals至少需要 1 人 review 批准才能合并
Dismiss stale pull request approvals新 push 后旧 approval 自动失效
Require status checks to pass before merging需要 CI 检查通过(需要先配 Actions)
Do not allow bypassing the above settings管理员也要遵守规则

4 Issue 管理 ^nav-4

创建 Issue

Issues tab → New issue
→ 写标题 + 描述(支持 Markdown)
→ 右侧 Assignees: 指派给谁
→ Labels: 加标签分类
→ Projects: 关联看板
→ Submit new issue

Labels 管理

Issues tab → Labels → New label

RootStack 推荐 Labels:

标签颜色用途
bug内容错误
enhancement新内容建议
question绿疑问
documentation文档改进
help wanted希望社区参与

Milestone(里程碑)

Issues tab → Milestones → New milestone
→ 填标题、截止日期、描述
→ 往 Issue 右侧 Milestone 选择某个里程碑

用于管理大版本(如 v1.0 发布前所有需要完成的 Issues)。


5 Pull Request 管理 ^nav-5

网页端 PR 流程

仓库页 → Pull Requests tab → New pull request
→ base: clean-main(要合并到哪)
→ compare: feature-x(从哪里合并)
→ Create pull request
→ 写标题 + 描述,关联 Issue(输入 # 编号)
→ 右侧 Assignees / Reviewers / Labels / Projects
→ Create pull request

合并后的分支清理

PR 合并后在网页端会看到 Delete branch 按钮,点击即可删掉远程分支。

PR 模板

在根目录创建 .github/PULL_REQUEST_TEMPLATE.md,每次新建 PR 会自动填充内容:

## 描述
请简要说明改动内容。
 
## 关联 Issue
Fixes #(编号)
 
## 检查清单
- [ ] 内容经过本地验证
- [ ] 相关双链接已补充
- [ ] 代码/公式格式正确

6 Releases ^nav-6

将 tag 转为一个可浏览的发布页:

Code tab → Releases → Draft a new release
→ Choose a tag: 选已有 tag 或输入新 tag 名创建
→ Release title: 比如 "v0.1.0 - 首个预览版"
→ Write description: 写 changelog(改动列表)
→ Attach binaries: 可选上传文件
→ Publish release

发布后页面会显示:

  • 版本号和 tag 名
  • 发布时间
  • 下载(Source code zip/tar.gz)
  • 如果有上传二进制附件也会列出来

7 安全设置 ^nav-7

Settings → Security
功能位置说明
SecretsSecrets and variables → Actions存 API token、密码等环境变量,CI 中可用
Dependabot alertsCode security → Dependabot alerts自动检测依赖漏洞并告警
Dependabot security updatesCode security → Dependabot security updates自动提 PR 修漏洞
Code scanningCode security → Code scanning自动扫描代码漏洞
Secret scanningCode security → Secret scanning检测仓库中是否暴露了密钥

Actions Secrets 用途

Secret 名存什么用于
GITHUB_TOKEN自动生成仓库内 Actions 操作(push、PR)
GH_TOKENPersonal access token跨仓库操作(如自动提 PR 到其他 repo)

8 Webhooks ^nav-8

让 GitHub 在特定事件发生时通知你的外部服务:

Settings → Webhooks → Add webhook
→ Payload URL: http://你的服务器/webhook
→ Content type: application/json
→ 选择触发事件: push / pull_request / issues / releases 等
→ Add webhook

常见场景:

  • 有人 push 后自动通知 Discord/Slack 频道
  • 新 release 后触发自动部署
  • Issue 创建后同步到项目管理工具

9 其他实用设置 ^nav-9

仓库话题 / 社交卡片

Settings → General → Social preview
→ 上传一张 1280×640 图片,作为仓库链接的预览图

禁止 Force Push

Settings → Branches → Add rule → clean-main
→ 勾选 "Deny force pushes"

防止有人 git push --force 覆盖历史。

默认分支

Settings → Branches → Default branch
→ 将 main / master 或 clean-main 设为默认

影响:clone 时默认拉取分支、PR 默认目标分支。

启用 Wiki / Projects / Discussions

Settings → General → Features
→ 勾选 Wikis / Issues / Projects / Discussions / Sponsorships
  • Wiki:简易文档(类似小博客)
  • Projects:看板管理(Kanban)
  • Discussions:论坛式讨论(比 Issue 更自由)