01 入门篇 · GitHub 世界观
如果你是第一次听说 GitHub,从这里开始。用最直观的方式理解这个世界。
📍 GitHub 到底是什么?
全球最大代码托管平台
GitHub 是一个基于 Git 的代码托管网站,全球超过 1 亿 开发者在这里存放、管理和协作代码。你可以把它理解成"代码界的 Google Drive",但功能强大得多。
程序员的社交网络
在 GitHub 上你可以关注有趣的人、给喜欢的项目点赞(Star)、复制别人的代码(Fork)、提出建议(PR),像微博+知乎+网盘的结合体。
开源世界的基石
Linux、Python、React、Vue、TensorFlow……几乎所有你听过的知名开源项目都托管在 GitHub 上。这里是全人类共享代码智慧的地方。
在线简历 & 作品集
招聘程序员时,面试官的第一件事就是看你的 GitHub 主页。你的提交记录、Star 过的项目、贡献过的仓库——都是你技术能力的证明。
你的 AI 编程助手
GitHub Copilot(基于 OpenAI)能在你写代码时自动补全;GitHub Actions 可以自动测试、构建、部署。这些都在一个平台上。
免费学习资源宝库
从 Python 入门到深度学习,从算法题到系统设计——GitHub 上有海量学习资料、面试题库、开源书籍,全部免费。
📍 Git vs GitHub — 别再搞混了
本地仓库"] -->|"git init / git clone"| B["💻 本地 Git"] B -->|"git add + git commit"| C["📦 Git 版本历史"] C -->|"git push"| D["☁️ GitHub 远程仓库"] D -->|"git pull"| B D -->|"Fork"| E["👥 其他人的仓库"] E -->|"Pull Request"| D B -->|"git branch"| F["🌿 分支管理"] style A fill:#1f2937,stroke:#58a6ff,color:#e6edf3 style B fill:#1f2937,stroke:#3fb950,color:#e6edf3 style C fill:#1f2937,stroke:#d29922,color:#e6edf3 style D fill:#1f2937,stroke:#bc8cff,color:#e6edf3 style E fill:#1f2937,stroke:#f778ba,color:#e6edf3 style F fill:#1f2937,stroke:#f85149,color:#e6edf3
| 维度 | Git | GitHub |
|---|---|---|
| 是什么 | 版本控制工具(软件) | 代码托管平台(网站) |
| 安装方式 | 本地安装 git 命令行 | 注册账号,浏览器使用 |
| 主要用途 | 记录代码变更、创建分支、合并代码 | 托管代码、协作开发、项目管理 |
| 联网需求 | 可离线使用 | 需要网络 |
| 费用 | 免费开源 | 免费(私有仓库也免费) |
| 类比 | Word 的"修订历史"功能 | 百度网盘 + 微博 + 知乎 |
📍 为什么每个学习者都要用 GitHub?
代码永不丢失
本地电脑坏了?误删了文件?GitHub 上有完整的历史记录,可以回退到任意版本。
贡献可视化
你的每一次提交都被记录在"绿色小方块"贡献图上——连续打卡的成就感超强。
团队协作利器
多人同时修改一个文件?GitHub 的冲突解决机制让这件事安全可靠。
项目管理
Issues + Projects + Milestones = 完整的项目全生命周期管理。公司里也一样用。
免费网站托管
GitHub Pages 让你免费搭建个人博客、项目官网,而且支持自定义域名。
自动化一切
Actions 自动测试、自动部署、自动发邮件……把重复劳动交给机器。
📍 注册与初始化设置
注册账号
打开 github.com,点击 Sign up。输入用户名、邮箱、密码。邮箱需要验证(收验证码)。免费
github.com/你的用户名 找到你。建议用英文名+数字的组合,例如 alice-2025。完善个人主页
点击右上角头像 → Settings → Profile。上传头像、写一段个人简介、添加你的网站或社交链接。
两步验证(强烈推荐)
Settings → Password and authentication → 开启 Two-factor authentication。你可以用手机 Authenticator 应用或短信验证。
配置 SSH 密钥(免密推送)
打开终端/命令提示符,输入以下命令👇
# 生成密钥(一路回车即可)
ssh-keygen -t ed25519 -C "你的邮箱@example.com"
# 查看公钥并复制
cat ~/.ssh/id_ed25519.pub
# 然后去 GitHub: Settings → SSH and GPG keys → New SSH key → 粘贴
设置 Git 本地身份
第一次使用 Git 时需要告诉电脑你是谁👇
git config --global user.name "你的GitHub用户名"
git config --global user.email "你的GitHub邮箱"
认识你的个人主页
访问 github.com/你的用户名,你会看到:
📸 左侧个人信息
头像、简介、关注/粉丝数、组织、赞助按钮
📌 顶部 Pin 住的仓库
你最骄傲的项目会展示在这里
📊 贡献图 (Contribution Graph)
绿色方块 = 提交代码的天数,越绿越勤奋
📋 仓库列表
你拥有的所有公开仓库,可按语言/时间排序
02 核心概念 · 这些词你必须懂
GitHub 有自己的"方言"。搞懂这些词,你就能看懂 90% 的 GitHub 页面。
📍 Repository(仓库)— 一切的基础
仓库就是一个项目的根目录,存放所有代码、文档、Issues、讨论…… 每一个"项目"就是一个仓库。
公开仓库 Public
全世界任何人都可以看到、克隆(下载)、Fork(复制)。开源项目都用这种。免费。
私有仓库 Private
只有你和邀请的协作者能看到。适合商业代码或未完成的项目。免费(无限制)。
仓库所属权
仓库可以属于个人账号,也可以属于组织(Organization)。组织可以设置团队权限、多人管理。
仓库模板 Template
你可以把自己的仓库设为模板,别人用它一键创建同样结构的新项目。
仓库名称 命名规则
例如 awesome-python、my-first-repo。命名建议用英文小写+连字符,语义清晰。
仓库描述 Description
在仓库名下方的一行文字,告诉访客这个项目是做什么的。例如"一个帮你管理日常任务的 Python 工具"。
Topics 标签分类
给仓库打标签,比如 python、machine-learning、react,方便被搜索到。
仓库网址 URL
格式:github.com/用户名/仓库名。例如 github.com/torvalds/linux 是 Linux 内核。
📍 README.md — 仓库的脸面
README 是 Markdown 格式(后缀 .md)。Markdown 是一种轻量级标记语言,用简单符号就能排版。你只需要知道这些:
| Markdown 写法 | 效果 |
|---|---|
# 标题 | 一级标题 |
## 副标题 | 二级标题 |
**加粗** | 加粗 |
`代码` | 代码 |
```python ... ``` | 代码块(带语法高亮) |
- 列表项 | 无序列表 |
1. 第一步 | 有序列表 |
 | 插入图片 |
[链接](url) | 超链接 |
> 引用 | 引用块 |
📍 Issue(议题)— 提问题 / 报 Bug
软件出错了"] B --> D["✨ 功能请求
想要新功能"] B --> E["❓ 提问 / 求助
不会用了"] B --> F["📝 任务 / 待办
记录要做的事"] C --> G["👥 开发者讨论"] D --> G E --> G F --> G G --> H["🔧 修复 / 实现"] H --> I["✅ Pull Request 关闭 Issue"]
标签 Labels 分类管理
每个 Issue 可以贴标签:bugenhancementhelp wantedgood first issuequestion 等等,方便筛选。
指派 Assignees 分配任务
把 Issue 分配给某个人,表示"这个问题由你来处理"。可以同时指派多人。
里程碑 Milestones 版本规划
把多个 Issue 归类到一个"里程碑"(比如 v1.0 发布),追踪项目进度。
项目看板 Projects Kanban
把 Issues 拖拽到一个类似 Trello 的看板上:To Do → In Progress → Done。
跨仓库引用 Cross-Reference
在 Issue 评论中输入 #123 引用本仓库的 Issue;用户名/仓库名#123 引用其他仓库。
评论与回复 讨论串
每个人都可以在 Issue 下评论,支持 Markdown、图片、代码块、@提及他人。
📍 Pull Request(PR)— 提代码 / 求合并
其他开发者审查"] F -->|"❌ 需要修改"| G["🔄 修改后重新提交"] G --> F F -->|"✅ 审查通过"| H["🔀 Merge 合并到主分支"] H --> I["🎉 PR 关闭
变更生效"]
PR 标题与描述 说明你的改動
标题简洁概括(如"修复登录页闪退问题"),描述详细说明改动原因、改了什么、如何测试。
Conversation 讨论区
审查者可以针对每一行代码发表评论。发起者需要在讨论中解释或修改。
Commits PR 内的提交
一个 PR 可以包含多个 Commit。每次 Push 新代码都会自动追加到这个 PR 中。
Checks 自动检查
Actions 自动运行测试/构建,检查通过(绿色✓)才能合并,防止坏代码进入主分支。
Merge 方式 三种策略
Create a merge commit(保留完整历史)/Squash and merge(压缩成一个提交)/Rebase and merge(线性历史)
Draft PR 草稿模式
代码写到一半时创建 Draft PR,告诉别人"还在建设中,请先别合并"。完成后点击 Ready for review。
📍 Fork / Star / Watch — 三个最有用的按钮
相当于 '我很喜欢这个项目'"] C["🍴 Fork"] --> D["📋 复制到自己的账号
克隆一份独立副本"] E["🔔 Watch"] --> F["👀 订阅通知
该项目的动态会通知你"] B --> G{"作用"} G --> H["项目作者获得成就感
帮你以后快速找到它"] D --> I{"作用"} I --> J["自由修改代码
修改后可以给原项目提 PR"] F --> K{"作用"} K --> L["Issue/PR/讨论
第一时间收到通知"] style A fill:#1f2937,stroke:#d29922,color:#e6edf3 style C fill:#1f2937,stroke:#f778ba,color:#e6edf3 style E fill:#1f2937,stroke:#58a6ff,color:#e6edf3
| 功能 | 图标 | 中文叫法 | 做了什么 | 什么时候用 |
|---|---|---|---|---|
| Star | ⭐ | 收藏 / 点赞 | 收藏这个仓库到你的 Star 列表 | 看到好项目、想以后再看 |
| Fork | 🍴 | 复制 / 派生 | 把该仓库复制到你自己的 GitHub 账号下 | 想修改别人的代码、想贡献 PR |
| Watch | 👁 / 🔔 | 关注 / 订阅 | 订阅该仓库的所有新动态 | 想密切关注某个项目的进展 |
📍 LICENSE & .gitignore — 两个重要的配置
LICENSE(许可证)
开源不等于"随便用"。许可证告诉别人:能不能商用?要不要署名?改了的代码要不要也开源?常见的许可证:
.gitignore(忽略文件)
有些文件不应该上传到 GitHub:
- 📁
node_modules/—— Node.js 依赖包 - 🔑
.env—— 环境变量/密码 - 🖼
*.log—— 日志文件 - ⚙️
.idea/—— IDE 设置 - 📦
__pycache__/—— Python 缓存
在 .gitignore 文件里写一行一个规则,Git 就会自动忽略这些文件。
默认分支 (Default Branch)
早期 GitHub 默认分支叫 master,现在是 main。这是仓库的主干,所有最终发布的代码在这里。
仓库可见性切换
公开→私有:已有的公开仓库可以改为私有,但 Fork 过的副本不会自动同步。
私有→公开:确认没有敏感信息后即可切换。
03 仓库深度 · 读懂仓库的每一个角落
打开一个 GitHub 仓库,你能看到什么?每一个元素都值得玩味。
📍 仓库页面结构详解
文件夹+文件+大小+最后修改时间"] C --> C2["📖 README.md
仓库首页下面的展示内容"] D --> D1["⭐ Star 数 / 🍴 Fork 数 / 👁 Watch 数"] D --> D2["🔗 网站 / Topics / License"] D --> D3["📅 最后更新 / 语言占比 / 贡献者"]
Code(代码)默认页
展示仓库的文件目录树。可以点击进入文件夹、查看文件内容。支持在线浏览代码。
Issues(议题)讨论区
项目的"意见箱"——Bug 报告、功能建议、提问。
Pull Requests 合并请求
所有正在审查中的 PR 列表。已关闭的 PR 也保存在这里。
Projects 看板
项目管理和任务追踪,支持表格和看板两种视图。
Wiki 文档百科
类似一个简单的维基百科,可以写详细的文档、教程、API 说明。
Discussions 社区论坛
比 Issues 更自由——提问、想法、投票、展示你的作品。
Insights 分析统计
贡献者排行、提交频率、代码频率、网络图等数据。
Settings 设置
只有仓库拥有者可见:改名、修改可见性、删除仓库、管理协作者。
搜索文件 快捷键 t
按 t 键快速搜索仓库中的文件,大型项目必备。
下载按钮 Code ▼
绿色 Code 按钮:Clone(通过 Git 下载)或 Download ZIP(直接下载压缩包)。
Release 版本发布
正式发布版本的地方,可以打 tag(v1.0、v2.0),附上发布说明和安装包。
📍 分支(Branch)与 标签(Tag / Release)
分支 (Branch) 并行开发
分支让你可以"平行宇宙"式开发——在 dev 分支写新功能,同时在 main 分支修 Bug,互不影响。最后再将 dev 合并到 main。
标签 (Tag) 里程碑标记
在某个 Commit 上贴一个标签(如 v1.0、v2.0.1),标记版本发布点。标签不可修改——发布后就不能改了。
Release 正式发布
基于 Tag 的"发布包"——可以附加发布说明、二进制文件、安装包。用户在 Releases 页面就能下载。
分支保护 防误操作
设置中可开启 Branch Protection:禁止直接 Push 到 main 分支、要求 PR 审查通过、要求 Actions 通过。
📍 Commit(提交)— 每一次改动的快照
Commit 是 Git 的核心概念——每次 Commit 就像是给整个项目拍了一张"快照",记录了这一时刻所有文件的样子。
Commit SHA 唯一标识
每个 Commit 都有一个 40 位的十六进制哈希值(如 a1b2c3d4e5f6...),全球唯一。也可以只用前 7 位来引用。
提交信息 (Commit Message) 写清楚改了啥
好的格式:第一行标题(50字内)+ 空行 + 详细描述。例如:feat: 添加用户登录功能修复了当用户输入空密码时的崩溃问题
作者 Author 谁改的
显示姓名 + 邮箱 + 时间。跟 GitHub 账号关联后,头像也会显示。
绿点+红点 改了什么
Commit 详情页显示 + 绿色(新增)和 - 红色(删除)的代码 diff。
parent 父提交
每个 Commit 指向它的前一个 Commit,形成一条"链"。Merge 提交有两个 parent。
📍 Insights(统计洞察)— 用数据看项目
Contributors 贡献者
按提交次数排名的贡献者列表,显示每个人的提交数和新增/删除行数。第一个通常是项目作者。
Commits 提交频率
按时间维度的提交统计图,可以看到项目活跃期和休眠期。
Code Frequency 代码增减
每周新增和删除代码行数的柱状图。绿色=新增,红色=删除。
Network 分支网络
所有分支和 Fork 的关系图,展示复杂的分支合并历史。
Pulse 活跃脉搏
过去一周/月的项目活动摘要——开了多少 Issue、合并了多少 PR 等。
Traffic 流量统计
仓库的访客数和访问量(GitHub 统计),公开仓库才能看到。
04 操作实战 · 从创建到发布
跟着步骤做一遍,你就真正上手了。这里覆盖了最常用的所有操作。
📍 创建你的第一个仓库
点击右上角 ➕ → New repository
或者直接访问 github.com/new
填写仓库信息
Repository name:比如 hello-world
Description(可选):"我的第一个 GitHub 项目"
Public / Private:选 Public(公开的)
初始化仓库(三个勾选)
☑ Add a README file —— 自动创建 README.md
☐ Add .gitignore —— 选 Python 或你的语言
☐ Choose a license —— 建议选 MIT
点击 Create repository 🎉
你的第一个仓库诞生了!现在可以在网页上编辑文件了。
📍 克隆到本地 & 推送代码
| 命令 | 中文 | 做了什么 |
|---|---|---|
git clone 仓库地址 | 克隆 | 把 GitHub 上的仓库第一次下载到本地 |
git status | 状态查看 | 看看哪些文件被修改过了 |
git add 文件名 | 暂存 | 把修改的文件"加入待提交区" |
git add . | 全部暂存 | 把所有修改文件加入待提交区 |
git commit -m "说明" | 提交 | 正式拍一张快照(本地) |
git push | 推送 | 把本地的提交上传到 GitHub |
git pull | 拉取 | 从 GitHub 下载最新代码到本地 |
git branch | 分支列表 | 列出所有分支,*号表示当前分支 |
git checkout -b 新分支 | 创建并切换 | 创建新分支并立即切换过去 |
git merge 分支名 | 合并 | 把指定分支的改动合并到当前分支 |
git log --oneline | 提交历史 | 简洁版提交日志 |
git diff | 差异对比 | 看看当前改动和上次提交的差异 |
克隆仓库
git clone https://github.com/你的用户名/hello-world.git
cd hello-world创建文件并编辑
在文件夹里新建一个 index.html,写点简单内容。
添加并提交
git add index.html
git commit -m "添加首页文件"推送到 GitHub
git push origin main回到浏览器刷新仓库页面,新文件出现了!
📍 在线编辑(不用装任何软件)
GitHub 网页本身就是一个强大的编辑器!完全不需要在本地装 Git:
直接编辑文件 点击 ✏️
在仓库里点击任意文件 → 右上角 ✏️ 铅笔图标 → 在网页上直接修改 → 点击 Commit changes。GitHub 会自动帮你完成 Commit。
新建文件 Add file
点击 Add file → Create new file。输入文件名和内容,直接提交到仓库。
上传文件 Upload files
直接把文件拖拽到浏览器窗口,或者点击 Upload files 选择文件。支持批量上传。
GitHub 在线编辑器 按下 . 键
在任意仓库页面按键盘的 . 键(英文句号),会直接打开一个网页版 VS Code!这是 GitHub 的隐藏神技。
分支内编辑 先建分支
在文件编辑页面,选择 "Create a new branch for this commit",这样你的修改就不会影响主分支。
Preview 预览 Preivew
编辑 Markdown 文件时,点击 Preview 标签可以实时看到渲染效果,不用保存。
📍 GitHub Desktop — 不想记命令?用这个
GitHub Desktop 是 GitHub 官方出品的桌面应用,全图形界面,不需要记任何命令行。对新手极度友好。
下载 免费
访问 desktop.github.com 下载安装。登录你的 GitHub 账号。
Clone 仓库 点几下就行
File → Clone Repository → 选择仓库 → 选择本地路径 → Clone。
看到所有改动 Changelist
左边显示所有修改过的文件,右边显示具体的改动内容(绿+红)。一目了然。
Commit 填写信息
在底部填 Summary(必填,一句话说明)和 Description(可选),点击 Commit。
Push / Pull 一键操作
点击 Fetch origin 拉取更新,点击 Push origin 推送提交。按钮上有数字提示。
分支管理 可视化
点击顶部分支名 → New Branch → 输入名称。切换分支也是点一下。
创建 PR 浏览器打开
Commit 后点击 "Create Pull Request" 按钮,自动在浏览器打开 PR 页面。
冲突检测 直观
如果有冲突,Desktop 会明确提示你,并让你选择保留哪个版本。
📍 SSH 密钥 & Token — 安全连接
GitHub 提供了多种方式来验证你的身份,避免每次操作都输入密码:
| 方式 | 优点 | 设置难度 | 推荐场景 |
|---|---|---|---|
| SSH 密钥 | 一次设置,永久使用;更安全 | ⭐⭐ 中等 | 个人电脑(开发者首选) |
| Personal Access Token (PAT) | 灵活,可设置过期时间和权限 | ⭐ 简单 | 脚本/CI/临时访问 |
| GitHub CLI | 命令行登录,自动处理认证 | ⭐ 简单 | 命令行重度用户 |
| 浏览器登录 (HTTPS) | 无需配置,用浏览器完成认证 | ⭐ 最简单 | 偶尔使用/新手 |
05 协作开发 · 和世界一起写代码
GitHub 的终极魅力是协作。掌握这些流程,你就能参与任何开源项目。
📍 Fork → Clone → PR 标准流程
Fork 原仓库
打开你想贡献的 GitHub 仓库 → 点击右上角 Fork 按钮。现在你的账号下有了一个一模一样的副本。
Clone 到本地
git clone https://github.com/你的用户名/仓库名.git
cd 仓库名创建新分支(重要)
永远不要直接在 main 分支上改!
git checkout -b fix-login-bug修改代码并提交
# 修完Bug后
git add .
git commit -m "fix: 修复登录页密码错误提示不显示"推送分支到你的 Fork
git push origin fix-login-bug创建 Pull Request
回到你的 GitHub Fork 页面 → 会看到一个黄色横幅提示 "fix-login-bug had recent pushes",点击 Compare & pull request → 填写 PR 标题和说明 → 点击 Create pull request。
等待审查 & 合并 🎉
项目维护者会看到你的 PR,他可能会要求修改。如果有修改需求,你只需要在本地改完后 git push,PR 会自动更新。
保持你的 Fork 同步
过一段时间后原仓库可能有新提交,你需要同步:
# 添加原仓库为 upstream
git remote add upstream https://github.com/原作者的仓库名.git
# 拉取最新代码
git fetch upstream
git checkout main
git merge upstream/main
git push origin main📍 Code Review(代码审查)— 如何评审别人的 PR
行内评论 精准
在 PR 的 Files changed 标签页,鼠标悬停在某一行代码上,点击蓝色 ➕ 号即可对该行发表评论。
Summary Comment 总结
在 PR 页面底部的评论区发一条总结性意见,可以 @ 相关人员。
Approve / Comment / Request Changes
审查完毕后在右上角点击 Finish your review:
✅ Approve — 批准合并
💬 Comment — 提建议但不阻塞
❌ Request Changes — 必须改了再合并
自动审查机器人 辅助工具
有许多 GitHub Apps 可以自动审查代码:检查代码风格(ESLint)、检测安全问题(CodeQL)、测试覆盖率(Codecov)。
建议修改 Insert suggestion
在行内评论中,点击 Insert a suggestion 可以直接写出你建议的代码,PR 作者一键就能应用。
Required Reviews 保护规则
仓库设置中可以要求:至少 1 人 Review 通过后才能合并、最新代码必须经过审查等。
📍 分支策略 — 团队怎么组织代码
生产环境代码
稳定、可发布"] --> B["🌿 develop
日常开发分支
功能集成"] B --> C1["🌱 feature/登录功能"] B --> C2["🌱 feature/支付模块"] B --> C3["🌱 feature/搜索优化"] B --> D1["🐛 hotfix/紧急Bug"] D1 --> A C1 --> B C2 --> B C3 --> B
| 策略 | 复杂度 | 适合场景 |
|---|---|---|
| Git Flow | ⭐⭐⭐ 高 | 大型团队、有版本规划的项目(如软件产品) |
| GitHub Flow | ⭐ 低 | 小型项目、持续部署(每个 PR 上线就是一次发布) |
| 主分支开发 | ⭐ 最低 | 个人项目、实验性项目 |
▶ 了解 GitHub Flow 详细步骤
- 从 main 分支创建一个 feature 分支(
git checkout -b feature-xyz) - 在 feature 分支上提交修改
- 推送到 GitHub(
git push origin feature-xyz) - 创建 Pull Request
- 讨论、审查、修改
- 合并到 main 分支
- 自动部署(如果有 CI/CD)
▶ 学会查看别人仓库的 CONTRIBUTING.md
几乎所有大型开源项目都有 CONTRIBUTING.md(贡献指南),里面写了:
- 如何报告 Bug(模板)
- 代码风格要求
- 测试要求
- PR 提交规范
- 行为准则(Code of Conduct)
在提 PR 之前,一定要先读 CONTRIBUTING.md!很多新手 PR 被拒的原因就是没看贡献指南。
06 GitHub Pages · 免费建站
用 GitHub Pages,你可以免费搭建个人博客、项目文档站、简历网站……不需要买服务器。
username.github.io"] B --> C2["📁 项目站点
username.github.io/repo"] C1 --> D1["🌐 自定义域名
如果需要"] C2 --> D2["免费 HTTPS
自动启用"] B --> E{"支持"} E --> F["✅ 静态 HTML/CSS/JS"] E --> G["✅ Jekyll 博客"] E --> H["✅ React/Vue 打包后"] E --> I["✅ 自定义 404 页面"]
搭建个人站点 必做
创建一个仓库命名必须为 用户名.github.io。把 HTML 文件推到 main 分支,等 1-2 分钟,你的网站在 https://用户名.github.io 上线了!
项目站点 每个仓库都有
进入仓库 Settings → Pages → 选择分支(如 main + /docs 文件夹)→ Save。访问地址:用户名.github.io/仓库名
Jekyll 博客 内置支持
GitHub Pages 原生支持 Jekyll 静态博客框架。你只需要写 Markdown 文章,它自动生成博客页面。也可以选其他框架(Hugo、Hexo等)。
自定义域名
Settings → Pages → Custom domain → 输入你的域名(如 blog.example.com)。然后在你的 DNS 服务商添加 CNAME 记录指向 用户名.github.io。
免费 HTTPS
GitHub Pages 自动为你的站点签发 Let's Encrypt 证书。即使使用自定义域名也支持 HTTPS。
主题选择
GitHub Pages 提供多款 Jekyll 主题(Minima、Cayman、Slate 等),在 Settings → Pages → Change theme 一键切换。
07 GitHub Actions · 自动化流水线
Actions 是 GitHub 的 CI/CD(持续集成/持续部署)工具,让机器帮你做重复劳动。
(cron 语法)"] B --> I["📝 PR 触发"]
Workflow(工作流) .github/workflows/
用 YAML 文件定义自动化流程。文件放在仓库的 .github/workflows/ 目录下。每次 Push、PR 或定时触发时自动运行。
Marketplace 预制 Action
GitHub Marketplace 上有成千上万个别人写好的 Action 可以直接用:
- actions/checkout —— 拉取代码
- actions/setup-python —— 配置 Python
- peaceiris/actions-gh-pages —— 部署到 Pages
Secrets(密钥) 安全存储
Settings → Secrets and variables → Actions。你可以存 API Key、密码等敏感信息,Workflow 中用 ${{ secrets.MY_KEY }} 引用。
定时任务 Cron 触发
Workflow 可以定时运行,比如每天凌晨自动爬取数据、每周生成报表。schedule: - cron: '0 8 * * *'(每天早上8点)
Runner(运行器)
Workflow 在 GitHub 提供的免费虚拟机上运行(Linux/Windows/macOS)。免费额度:每月 2000 分钟。
Matrix Build 多版本并行
一键测试多个环境:Python 3.9/3.10/3.11 + Ubuntu/Windows/macOS 并行运行,一个配置搞定所有。
pytest 测试,测试通过后自动部署到 GitHub Pages。你只需要在 .github/workflows/main.yml 写不到 30 行 YAML 配置。08 发现探索 · 在 GitHub 上找到好东西
GitHub 不仅是代码托管平台,更是全球最大的学习资源库。
Trending(趋势) 今日热门
访问 github.com/trending。每天更新,展示今天最受关注的项目。可按语言(Python/JavaScript等)和时段(今天/本周/本月)筛选。
高级搜索 精准查找
在搜索框中输入关键字后,点击搜索框下方的标签进行筛选:语言、Star 数范围、创建时间等。高级语法:stars:>1000 language:python 搜索 Star 过千的 Python 项目。
Explore(探索)发现新项目
GitHub 根据你的 Star 历史、关注的用户、仓库语言偏好,个性化推荐你可能喜欢的项目。
Topics(主题)分类浏览
访问 github.com/topics。按技术栈浏览:machine-learning、react、game-development 等。每个 Topic 页面展示该领域的优秀项目。
Awesome 系列 精选清单
搜索 awesome-xxx:awesome-python —— Python 精品资源合集awesome-react —— React 生态大全awesome-machine-learning —— 机器学习资源清单
这些是社区维护的"最佳资源列表"。
开源书籍/教程 免费学习
搜索关键词:tutorial、book、learn-。例如:freeCodeCamp/freeCodeCamp —— 免费编程课程donnemartin/system-design-primer —— 系统设计入门
Showcases 主题收藏
GitHub 官方整理的精选项目集合,例如"Women in Open Source"、"GitHub Education"等。
Gist(代码片段)gist.github.com
分享代码片段的好地方。可以创建公开或私密的 Gist,支持多文件、Markdown 描述。常用于:分享配置、贴代码求助、保存常用脚本。
GitHub Awards 成就系统
第三方网站 github-awards.com 展示了你在特定城市或国家/地区的 GitHub 排名。按 Star 数、Fork 数、贡献数等排行。
GitHub 游戏 边玩边学
有一些项目教你用游戏的方式学习 Git:
- pcottle/learnGitBranching —— 交互式 Git 学习
- gittower/git-game —— Git 解谜游戏
Changelog & Releases 版本动态
关注你 Star 过的项目的 Releases 页面,看最新更新了什么。Watch 选择 "Releases only" 只接收版本发布通知。
Good First Issues 新手友好
搜索 label:"good first issue" 找到标注了"新手友好"的 Issue。这是参与开源的最佳起点!GitHub 还推出了 github.com/explore 推荐。
10 工具集成 · 让工作流更顺畅
GitHub 可以和开发工具深度整合,打造全自动工作流。
VS Code 集成 最推荐
直接在 VS Code 中完成所有 Git 操作:
- 安装 GitHub Pull Requests 扩展
- 查看/创建 PR
- 行内评论
- 解决冲突
- 甚至从 VS Code 直接查看 GitHub Actions 运行状态
GitHub CLI(gh)命令行神器
安装 GitHub CLI,在终端中操作 GitHub:gh repo create —— 创建仓库gh pr create —— 创建 PRgh issue list —— 查看 Issuesgh repo clone 用户名/仓库 —— 克隆仓库
GitHub 手机 App
iOS 和 Android 都有官方 App。你可以:
- 审查 PR
- 回复 Issues
- 查看代码
- 合并 PR(谨慎操作)
- 管理通知
GitHub Copilot AI 编程
在 VS Code / JetBrains 等编辑器中,Copilot 在你写代码时自动补全。后续还有 Copilot Chat(问答)和 Copilot for PRs(自动生成 PR 描述)。
第三方集成 Slack / Discord / Jira
GitHub 可以与许多工具联动:
- Slack / Discord:PR 通知
- Jira / Linear:项目对接
- Netlify / Vercel:自动部署
- Codecov / SonarCloud:代码质量
GitHub Apps / Webhooks
GitHub Apps 可以为仓库添加额外功能。Webhooks 在特定事件(Push、PR、Issue 等)发生时向你的服务器发送 HTTP 请求,实现自定义自动化。
GitHub Copilot for PRs AI 审查
AI 自动为你的 PR 生成描述、识别潜在的 Bug、提出改进建议。还在不断进化中。
Dependabot 依赖自动更新
自动检测项目依赖是否有安全漏洞,自动创建 PR 来更新有问题的依赖。支持 npm、pip、Maven 等主流包管理器。
CodeQL 安全扫描
GitHub 内置的安全分析工具,自动扫描代码中的安全漏洞(SQL 注入、XSS、硬编码密码等)。免费为公开仓库提供服务。
Stars 管理 星标收藏夹
你的所有 Star 在 github.com/stars/用户名 页面。支持按语言筛选、搜索、加标签分类(需要第三方工具)。
11 快捷键 · 效率翻倍
GitHub 内置了大量键盘快捷键——按下 ? 或 Shift+/ 可以查看所有快捷键。
12 FAQ · 常见问题
新手最常问的问题,全部在这里解答。
▶ GitHub 是免费的吗?
▶ 我不会写代码,用 GitHub 有用吗?
— 存放和管理你的文档(用 Markdown 写作)
— 搭建免费的博客/网站(GitHub Pages)
— 下载和学习别人的项目
— 用 Issues 做任务管理
— 参与翻译类开源项目
— 学习技术写作和协作流程
▶ 不小心把密码提交到公开仓库了怎么办?
1️⃣ 立刻更改密码/密钥(去对应的网站重新生成)
2️⃣ 用
git rm --cached 从仓库移除文件3️⃣ 建议强制删除 Git 历史中的敏感信息(使用
git filter-branch 或 BFG Repo-Cleaner)4️⃣ 如果有推送,GitHub 可能已经检测到并通知你
✅ 重要的是:从 Git 历史中彻底清除(不仅仅是删文件),因为敏感的提交仍在历史里。
▶ 如何删除一个仓库?
▶ 什么是 Merge Conflict(合并冲突)?怎么解决?
1️⃣ 用
git status 查看哪些文件有冲突2️⃣ 打开冲突文件,你会看到:
<<<<<< HEAD你的改动=======别人的改动>>>>>> 分支名3️⃣ 手动保留需要的代码,删除冲突标记
4️⃣
git add → git commit 完成解决▶ Fork 和 Clone 的区别是什么?
Clone:把 GitHub 上的仓库下载到你本地电脑。Clone 可以是自己的仓库,也可以是别人的。
✅ Fork 在云端创建一个副本,Clone 在本地创建一个副本。通常流程是:先 Fork,再 Clone 你的 Fork 到本地。
▶ 什么是 gitignore?为什么重要?
— 🚫 避免上传密码、密钥、Token
— 📦 避免上传第三方依赖(如 node_modules)
— ⚙️ 避免上传 IDE 配置文件
— 🖼️ 避免上传临时文件/日志
GitHub 创建仓库时提供了常用语言的 .gitignore 模板,可以直接选用。
▶ 怎么给开源项目做贡献?
⭐ 修文档:修正拼写错误、补充使用说明
🐛 测试并报告 Bug:认真描述如何复现问题
💬 在 Issues 里帮助回答别人
🌍 翻译:把项目文档翻译成中文
🧪 写测试:提高项目代码质量
📝 完善 README:好的文档对项目非常重要
🔧 修复 Good First Issue:搜索 label:"good first issue"
▶ 我提交了 Commit,但想撤回怎么办?
— 还没 Push:
git reset --soft HEAD~1(保留修改,撤销 Commit)或 git reset --hard HEAD~1(彻底撤销,慎用)— 已经 Push:
git revert HEAD 创建一个"反向"提交,保留历史— 如果 Push 到公共分支:不要用
reset,必须用 revert!因为 reset 会改写历史,别人已经 Pull 了你的代码就乱套了。▶ 什么是 GitHub Gist?
gist.github.com)是一个轻量级的代码片段分享服务。你可以:— 分享一段代码给别人看
— 存放常用的小脚本
— 做笔记(支持 Markdown)
— 创建秘密 Gist(只有知道链接的人能看到)
Gist 有自己的 Git 仓库,可以 Clone 到本地管理。
▶ 为什么我的仓库里没有绿色小方块(贡献图)?
1️⃣ 你没有登录 GitHub 时提交——Commit 的 author email 必须关联到 GitHub 账号
2️⃣ 你在私有仓库中提交——默认私有仓库的提交不显示在贡献图上,需要在贡献图设置里开启
3️⃣ 你 Fork 了别人的仓库——Fork 后的提交默认不显示
4️⃣ 你的提交在非默认分支——只有默认分支的提交算贡献
▶ 什么是 Git rebase?和 merge 的区别?
git rebase:把你的提交"移植"到另一个分支的顶端,使历史变成一条直线。更干净,但会改写历史。
常用原则:
— 公共分支(main)——用 merge,保持历史可追溯
— 自己的功能分支——用 rebase 让提交历史更整洁
▶ 如何在 README 里显示图标/徽章?
Shields.io 提供上千种徽章:构建状态、测试覆盖率、代码质量、下载量……让你的 README 更专业。
▶ 如何把本地已有的项目上传到 GitHub?
# 在 GitHub 上先创建一个空仓库(不要勾选 README)
# 本地项目目录下
git init
git add .
git commit -m "initial commit"
git branch -M main
git remote add origin https://github.com/你的用户名/仓库名.git
git push -u origin main▶ GitHub 有没有容量限制?
— 每个仓库推荐不超过 1GB(硬限制 5GB)
— 单个文件最大 100MB(超限会警告)
— 超过 50MB 的文件建议用 Git LFS(大文件存储)
— Git LFS 免费额度:2GB 存储 + 1GB/月带宽
▶ 我想参与开源,但英语不好怎么办?
— 搜索中文 Issue 或 Discussions
— Vue、Ant Design 等国内优秀项目全程中文
— 在项目 Issues 里用中文提问(大部分中国开发者接受中文)
— 国际项目也可以看中文翻译版文档
— 不过,提升英语对编程非常有用,建议逐步适应英文交流
09 社交生态 · GitHub 也是朋友圈
GitHub 的社交功能让你找到志同道合的开发者,建立技术影响力。
Follow(关注) 互相关注
关注你欣赏的开发者,他们的公开活动会出现在你的 Dashboard 上。被关注也是技术影响力的证明。
Organization(组织)团队管理
组织账号用于管理一个团队或公司的所有仓库。可以设置多级权限:Owner、Member、外面的 Collaborator。
Team(团队)组织内部协作
组织内部可以创建多个团队(如 Frontend Team、Backend Team),对仓库设置不同访问权限。
GitHub Sponsors 赞助
赞助你喜欢的开源项目开发者。每月固定金额,支持他们持续维护开原项目。很多知名开发者靠 Sponsors 获得收入。
GitHub Stars 排行 影响力指标
你的 GitHub 总 Star 数(所有仓库的 Star 数之和)是衡量你开源影响力的重要指标。但不必刻意追求——做出好的作品,Star 自然来。
贡献图 (Contribution Graph) 你的绿方块
个人主页上显示的"绿色网格":每天有提交就变绿,颜色深浅表示提交次数。连续打卡记录的"Streak"是 GitHub 玩家的荣耀。
Profile README 个人主页置顶
创建一个与你用户名同名的仓库(
用户名/用户名),在里面放一个README.md,它就会显示在你的个人主页顶部!可以展示:技能标签、当前在做什么、统计数据、博客链接等。GitHub Achievements 成就徽章
GitHub 官方成就系统,完成特定任务获得徽章:
⭐ Starstruck —— 你的项目获得 16 个 Star
🍴 YOLO —— 没有 Code Review 就合并 PR
🐛 Pull Shark —— 合并了 2 个 PR
🏆 还有 Arctic Code Vault、Galaxy Brain 等隐藏成就
Discussions 社区论坛
仓库的 Discussions 页面像一个迷你论坛:可分类(Q&A、想法、通知等)、可投票、可置顶。适合项目社区交流。