🚀 GitHub完整使用教程:从零开始,手把手教你玩转全球最大代码托管平台
你是否听过GitHub却不知道怎么用?是否注册了账号却对着一堆英文按钮发懵?是否看着别人的开源项目眼馋却不知道怎么参与?
这篇文章就是为你写的。我会用最傻瓜的方式,把GitHub上每一个按钮、每一个界面、每一个选项都讲清楚。不需要任何基础,跟着做就行。
跟着这篇文章走完,你将从"GitHub小白"变成"GitHub熟练用户"。
上图展示了GitHub的完整开发工作流:从创建仓库到最终合并,每一步都有对应的功能模块支撑。
📌 第一章:注册GitHub账号
在开始之前,你需要一个GitHub账号。整个注册过程完全免费。
1.1 打开GitHub官网
在浏览器地址栏输入 https://github.com,回车。
你会看到GitHub的首页,右上角有两个按钮:Sign up(注册)和 Sign in(登录)。
点击 Sign up。
1.2 填写注册信息
GitHub会引导你完成以下步骤:
第一步:输入邮箱
输入你常用的邮箱地址。注意:QQ邮箱、163邮箱、G邮箱都可以用,但建议使用Gmail或企业邮箱,因为部分国内邮箱偶尔会收不到GitHub的验证邮件。
第二步:设置密码
密码要求至少8位,包含字母和数字。建议设置一个强密码:大小写字母+数字+特殊符号,比如 MyGitHub@2026。
第三步:设置用户名
用户名是你的GitHub唯一标识,注册后可以修改但要谨慎。用户名规则:
只能包含字母、数字和连字符(-)
不能以连字符开头或结尾
不能包含连续两个连字符
选好用户名后,GitHub会实时检查是否被占用。如果你想要的用户名已被注册,系统会提示你换一个。
第四步:邮箱验证
GitHub会向你填写的邮箱发送一封验证邮件,邮件里有一个验证码或验证链接。打开邮箱,找到这封邮件(如果收件箱没有,检查一下垃圾邮件文件夹),输入验证码或点击链接完成验证。
第五步:选择免费方案
GitHub会问你是否要付费。选择 Free(免费版)即可。免费版已经能满足绝大多数个人开发者的需求。
第六步:完成问卷调查(可跳过)
GitHub会问你几个问题:你的编程经验、你计划用GitHub做什么、你的角色等。你可以如实填写,也可以直接点 Skip personalization 跳过。
1.3 验证注册是否成功
注册完成后,你会被引导到GitHub的首页(Dashboard)。如果你看到左上角有你的用户名和头像,说明注册成功了。
💡 小贴士:GitHub的界面语言是英文,目前没有官方中文版。但别担心,常用的按钮就那么几个,用几次就熟了。如果实在不习惯,可以在浏览器安装翻译插件。
📌 第二章:创建你的第一个仓库
仓库(Repository,简称Repo)是GitHub上存放代码的地方。你可以把它理解为一个项目文件夹,但比普通文件夹强大得多。
2.1 找到创建仓库的入口
登录GitHub后,有三种方式创建新仓库:
方式一:点击页面右上角的 + 号,选择 New repository
方式二:在首页左侧栏,点击绿色的 New 按钮
方式三:直接在浏览器输入 https://github.com/new
2.2 填写仓库信息
进入创建仓库页面后,你会看到以下选项,我们逐个讲解:
Repository name(仓库名称)
这是必填项。命名建议用英文,用连字符分隔单词,比如 my-first-project、python-tools、blog-template。
命名规则:
只能包含字母、数字、连字符(-)、下划线(_)和点(.)
不能以点开头或结尾
不能包含空格
Description(描述)
这是选填项,但强烈建议填写。用一两句话描述这个仓库是做什么的,比如"一个用于学习Python自动化的代码仓库"。
填写描述的好处:别人搜索到你的仓库时,能一眼看明白这是干什么的;也方便你自己日后管理多个仓库。
Public vs Private(公开还是私有)
选项
说明
适用场景
Public
任何人都能看到你的代码
开源项目、学习笔记、个人作品展示
Private
只有你和被邀请的人能看到
商业项目、个人私密代码、正在开发中的项目
💡 注意:GitHub免费版也支持无限数量的Private仓库,所以不用担心隐私问题。你可以先把仓库设为Private,开发完成后再改为Public。
Add a README file(添加README文件)
勾选这个选项,GitHub会自动为你创建一个 README.md 文件。
README文件是仓库的"门面"——别人打开你的仓库时,首先看到的就是README的内容。它通常包含:项目介绍、安装方法、使用说明、许可证等信息。
强烈建议勾选。即使你现在不知道写什么,有个空README也比没有好。
Add .gitignore(添加.gitignore文件)
.gitignore 文件用来告诉Git哪些文件不需要被追踪(不上传到GitHub)。比如编译产生的临时文件、依赖包目录、配置文件中的密码等。
下拉菜单里有很多选项,对应不同的编程语言和框架。比如:
Python:会忽略 __pycache__/、.env、*.pyc 等
Node:会忽略 node_modules/、npm-debug.log 等
Java:会忽略 *.class、target/ 等
如果你不知道选什么,就先不选。以后可以手动添加。
💡 什么是Git? Git是一个版本控制工具,GitHub是基于Git的代码托管平台。简单说,Git帮你记录代码的每次修改历史,GitHub帮你在云端存储和分享这些代码。这篇文章主要讲GitHub网页端操作,不涉及Git命令行。
Choose a license(选择许可证)
许可证(License)决定了别人可以怎样使用你的代码。如果仓库是Private,可以不选。如果是Public且你希望别人能自由使用你的代码,建议选择一个许可证。
许可证
说明
适用场景
MIT License
最宽松,别人可以随便用,只要保留你的版权声明
大多数开源项目
Apache 2.0
类似MIT,但包含专利授权条款
企业级开源项目
GPL 3.0
别人用了你的代码,他的项目也必须开源
强调自由软件的项目
如果不确定,选 MIT License 就对了。
2.3 点击创建
所有信息填好后,点击页面底部的绿色按钮 Create repository。
创建完成后,你会自动跳转到你的仓库页面。恭喜你,你已经拥有了自己的第一个GitHub仓库!
📌 第三章:仓库界面全解析
创建好仓库后,你会看到仓库的主页面。这个页面上有很多标签页(Tabs),每个标签页对应一个功能模块。我们来逐个讲解。
3.1 Code(代码)
这是默认打开的标签页,展示仓库的文件列表。
页面上方的关键元素:
分支选择器:左上角有一个下拉菜单,显示当前分支名(默认是 main)。点击可以切换分支或创建新分支。
<> Code 按钮:绿色的按钮,点击后会弹出一个面板,包含三种方式将代码下载到本地:
HTTPS:最简单的方式,复制URL,用 git clone 命令下载
SSH:更安全的方式,需要先配置SSH密钥
GitHub CLI:使用GitHub命令行工具
面板底部还有一个 Download ZIP 按钮,点击可以直接下载整个仓库的ZIP压缩包,不需要安装Git。
文件列表:展示仓库中的所有文件和文件夹。点击文件名可以查看文件内容,点击文件夹名可以进入子目录。
README预览:如果仓库根目录有 README.md 文件,它的内容会自动显示在文件列表下方。
Latest commit信息:文件列表上方显示最近一次提交的信息,包括提交说明、提交者、提交时间。
commit历史:点击 ...commits 链接,可以查看完整的提交历史记录。
3.2 Issues(问题)
Issues是GitHub的"问题追踪系统",用来记录bug、功能需求、讨论话题等。
创建Issue:
点击 New issue 按钮
填写Title(标题):简明扼要地描述问题,比如"登录页面在手机上显示错位"
填写Comment(正文):详细描述问题。支持Markdown格式,可以插入图片、代码块、链接等
右侧面板可以设置:
Assignees:分配给谁来处理
Labels:打标签分类,比如 bug、enhancement、question
Projects:关联到项目看板
Milestone:关联到里程碑
点击 Submit new issue 提交
管理Issue:
可以随时编辑、关闭、重新打开Issue
关闭Issue表示问题已解决
可以在Issue中@其他人来提醒他们
可以用 #编号 引用其他Issue或Pull Request
💡 技巧:善用Labels可以帮你高效管理Issue。GitHub内置了多种标签,你也可以创建自定义标签。常见的标签包括:bug(缺陷)、enhancement(功能增强)、documentation(文档)、good first issue(适合新人的入门问题)等。
3.3 Pull requests(合并请求)
Pull Request(简称PR)是GitHub协作开发的核心功能。当你修改了代码(通常是在一个分支上),可以发起PR请求,让仓库管理者审核并合并你的修改。
PR的详细流程我们在第七章讲解,这里先了解界面:
Open:待审核的PR
Closed:已关闭的PR(被拒绝或已合并)
每个PR页面包含:
Conversation:讨论区,显示提交说明、审核意见、CI检查结果
Commits:这个PR包含的所有提交
Files changed:代码变更的逐行对比,绿色表示新增,红色表示删除
3.4 Actions(自动化)
GitHub Actions是GitHub内置的CI/CD(持续集成/持续部署)工具。它可以让你在特定事件发生时自动执行脚本。
比如:每次你推送代码时,自动运行测试;每次发布新版本时,自动构建并部署。
Actions标签页展示:
All workflows:所有工作流运行记录
每条记录显示:工作流名称、触发事件、运行状态(✅成功/❌失败/🔄运行中)、耗时
点击任意记录可以查看详细的执行日志
我们会在第十章详细讲解Actions的配置。
上图展示了GitHub仓库的核心功能模块,每个标签页对应一个独立的功能区域,本章后续逐一讲解。
3.5 Projects(项目)
GitHub Projects是一个看板式项目管理工具,类似Trello。
你可以创建项目看板,添加卡片(可以是Issue、PR或自定义笔记),用拖拽的方式在不同列之间移动卡片,管理任务进度。
3.6 Wiki(维基)
Wiki是仓库的文档页面,适合存放比README更详细的文档。
README是仓库的"简介",Wiki是仓库的"说明书"。不是所有仓库都需要Wiki,按需使用。
3.7 Security(安全)
Security标签页提供安全相关的功能:
Dependabot alerts:当你的项目依赖的第三方库有已知安全漏洞时,GitHub会自动报警
Code scanning:自动扫描代码中的安全漏洞
Secret scanning:扫描代码中是否意外泄露了密钥、Token等敏感信息
这些功能对Public仓库免费,Private仓库也有基本支持。
3.8 Insights(洞察)
Insights标签页提供仓库的数据分析:
Pulse:最近一周的活跃度概览
Contributors:贡献者排行榜
Traffic:访问量和克隆量
Commit activity:提交活跃度图表
Code frequency:代码增删频率
Network:Fork网络图
Forks:Fork列表
Dependents:被依赖列表
Dependency graph:依赖关系图
3.9 Settings(设置)
Settings标签页是仓库的设置中心,内容非常多。我们在第十一章详细讲解。
📌 第四章:文件上传与管理
GitHub Projects是一个看板式项目管理工具,类似Trello。
你可以创建项目看板,添加卡片(可以是Issue、PR或自定义笔记),用拖拽的方式在不同列之间移动卡片,管理任务进度。
3.6 Wiki(维基)
Wiki是仓库的文档页面,适合存放比README更详细的文档。
README是仓库的"简介",Wiki是仓库的"说明书"。不是所有仓库都需要Wiki,按需使用。
3.7 Security(安全)
Security标签页提供安全相关的功能:
Dependabot alerts:当你的项目依赖的第三方库有已知安全漏洞时,GitHub会自动报警
Code scanning:自动扫描代码中的安全漏洞
Secret scanning:扫描代码中是否意外泄露了密钥、Token等敏感信息
这些功能对Public仓库免费,Private仓库也有基本支持。
3.8 Insights(洞察)
Insights标签页提供仓库的数据分析:
Pulse:最近一周的活跃度概览
Contributors:贡献者排行榜
Traffic:访问量和克隆量
Commit activity:提交活跃度图表
Code frequency:代码增删频率
Network:Fork网络图
Forks:Fork列表
Dependents:被依赖列表
Dependency graph:依赖关系图
3.9 Settings(设置)
Settings标签页是仓库的设置中心,内容非常多。我们在第十一章详细讲解。
📌 第四章:文件上传与管理
在GitHub网页端,你可以直接创建、编辑、上传和删除文件,不需要安装任何工具。
4.1 创建新文件
在Code页面,点击 Add file → Create new file
在 Name your file 输入框中输入文件名,比如 hello.py
如果需要创建子目录,输入 src/hello.py,GitHub会自动创建 src 目录
在下方的大文本框中编写文件内容
在页面底部填写提交信息:
Commit message:简短描述这次修改,比如"添加hello.py文件"
Extended description:可选的详细描述
选择提交方式:
Commit directly to the main branch:直接提交到主分支
Create a new branch:创建新分支并提交,然后可以发起PR
点击绿色的 Commit new file 按钮
4.2 上传文件
在Code页面,点击 Add file → Upload files
可以直接把文件拖拽到虚线框内,或者点击 choose your files 选择文件
支持批量上传多个文件
填写提交信息
点击 Commit changes 按钮
⚠️ 注意:GitHub网页端上传单个文件不能超过25MB。如果需要上传大文件,请使用Git命令行或GitHub Desktop客户端。另外,GitHub对单个仓库的总大小建议不超过1GB。
4.3 编辑文件
在Code页面,点击要编辑的文件名
在文件内容页面,点击右上角的铅笔图标(✏️ Edit this file)
修改文件内容
填写提交信息
点击 Commit changes 按钮
4.4 删除文件
在Code页面,点击要删除的文件名
点击右上角的垃圾桶图标(🗑️ Delete this file)
填写提交信息
点击 Commit changes 按钮
💡 提示:GitHub网页端的文件操作会自动记录在提交历史中,可以随时回溯。即使误删了文件,也能从历史记录中恢复。
4.5 查看文件历史
每个文件都有修改历史:
打开文件
点击右上角的 History 按钮
可以看到这个文件的所有修改记录,包括每次修改的提交信息、时间和作者
点击任意记录可以查看具体的代码变更
📌 第五章:分支管理详解
分支(Branch)是Git最强大的功能之一。简单说,分支让你可以在不影响主代码的情况下,独立开发新功能或修复bug。
5.1 什么是分支
想象一下:你在写一本书,主分支(main)就是已经出版的版本。你想加一个新章节,但又怕写坏了影响已出版的内容。于是你复制一份,在新副本上写。写完检查没问题后,再合并回主版本。
这个"副本"就是分支。
5.2 创建分支
在Code页面,点击左上角的分支选择器(显示 main)
在输入框中输入新分支名,比如 feature/login
点击 Create branch: feature/login from main
现在你就在新分支上了,所有的修改都会提交到这个分支,不影响 main 分支
分支命名规范:
前缀
用途
示例
feature/
新功能
feature/user-auth
fix/
修复bug
fix/login-redirect
docs/
文档更新
docs/api-reference
refactor/
代码重构
refactor/database-layer
hotfix/
紧急修复
hotfix/security-patch
5.3 切换分支
在Code页面,点击分支选择器,选择要切换到的分支名即可。切换后,文件列表会显示该分支的文件状态。
5.4 比较分支
如果你想看两个分支之间的差异:
将URL改为 https://github.com/用户名/仓库名/compare/分支A...分支B
或者点击分支选择器旁边的新分支创建入口,选择 Compare 选项
页面会显示两个分支之间的所有代码差异
5.5 删除分支
方法一:在分支选择器中,找到要删除的分支,点击分支名右侧的垃圾桶图标
方法二:在Settings → Branches页面,找到要删除的分支,点击删除按钮
⚠️ 注意:不能删除当前所在的分支。如果分支已被合并到主分支,删除是安全的;如果未合并,删除会丢失未合并的修改。GitHub会在删除前提醒你。
5.6 分支保护规则
如果你不希望任何人(包括自己)直接向 main 分支推送代码,可以设置分支保护规则:
进入 Settings → Branches
点击 Add branch protection rule
在 Branch name pattern 中输入要保护的分支名,比如 main
可以开启以下保护规则:
规则
说明
Require a pull request before merging
合并前必须先发起PR
Require approvals
PR需要至少N人审核通过
Require status checks to pass
CI检查必须通过才能合并
Require branches to be up to date
合并前必须与目标分支同步
Do not allow bypassing the above settings
即使是管理员也不能绕过规则
💡 建议:即使是个人项目,也建议开启"Require a pull request before merging"。这样可以培养良好的开发习惯:先在功能分支开发,再通过PR合并到主分支。
📌 第六章:Issues问题追踪
Issues不仅仅是"报bug"的地方,它是一个完整的项目管理工具。
6.1 Issue模板
如果你希望别人提交Issue时遵循一定格式,可以创建Issue模板:
进入 Settings → General(最顶部)
滚动到 Features 区域,勾选 Issues
在 Issues 区域下方,点击 Set up templates
GitHub提供了几个内置模板:
Bug report:报告bug的模板
Feature request:提功能建议的模板
Custom:自定义模板
模板示例(Bug report):
---
name: Bug 报告
about: 报告一个bug帮助我们改进
title: ''
labels: bug
assignees: ''
---
**描述bug**
简要描述bug是什么。
**复现步骤**
1. 打开 '...'
2. 点击 '....'
3. 滚动到 '....'
4. 看到错误
**期望行为**
描述你期望发生什么。
**实际行为**
描述实际发生了什么。
**环境**
- 操作系统: [如 iOS]
- 浏览器: [如 chrome, safari]
- 版本: [如 22]
``
创建模板后,别人点击 **New issue** 时,会看到模板选择界面,选择对应模板后,会自动填充模板内容。
### 6.2 Labels(标签)管理
GitHub内置了多个默认标签:
| 标签名 | 颜色 | 用途 |
|:---|:---|:---|
| `bug` | 红色 | 功能缺陷 |
| `documentation` | 蓝色 | 文档相关 |
| `duplicate` | 灰色 | 重复Issue |
| `enhancement` | 浅蓝 | 功能增强 |
| `good first issue` | 绿色 | 适合新人的入门问题 |
| `help wanted` | 绿色 | 需要帮助 |
| `invalid` | 灰色 | 无效Issue |
| `question` | 紫色 | 提问 |
| `wontfix` | 黑色 | 不会修复 |
你可以在 Issues 页面点击 **Labels** 按钮来创建、编辑、删除自定义标签。
### 6.3 Milestone(里程碑)
里程碑用来管理一组相关的Issue,通常对应一个版本或一个迭代周期。
创建里程碑:
1. 在 Issues 页面,点击 **Milestones**
2. 点击 **New milestone**
3. 填写标题(如 `v1.0`)、描述、截止日期
4. 点击 **Create milestone**
创建后,你可以把相关的Issue分配到这个里程碑,然后在里程碑页面查看进度(已关闭/未关闭的Issue数量)。
### 6.4 Issue的高级用法
**引用**:在Issue评论中输入 `#`,会弹出Issue/PR列表,可以选择引用。输入 `@` 可以@其他用户。
**关闭Issue**:
- 在评论中输入 `closes #123`,当这个PR被合并时,会自动关闭编号为123的Issue
- 类似的关键词还有 `close`、`fix`、`resolve`(单数和复数都可以)
**固定Issue**:重要Issue可以点击右上角的 **Pin** 按钮置顶。
**转移Issue**:如果Issue发错了仓库,可以点击右侧面板的 **Transfer issue** 转移到其他仓库。
---
## 📌 第七章:Pull Request代码协作
Pull Request(PR)是GitHub最重要的协作功能。无论你是给别人的项目贡献代码,还是在自己的项目中管理分支合并,都离不开PR。
### 7.1 创建Pull Request
**前提**:你已经在一个分支上做了修改,想把这些修改合并到另一个分支(通常是 `main`)。
**步骤**:
1. 在仓库页面,点击 **Pull requests** 标签
2. 点击 **New pull request** 按钮
3. 选择比较关系:
- **base**:目标分支(你要合并到哪个分支),通常是 `main`
- **compare**:源分支(你的修改在哪个分支)
4. 页面会显示两个分支之间的差异
5. 如果有修改,点击 **Create pull request**
6. 填写PR信息:
- **Title**:简明描述这次修改做了什么
- **Description**:详细说明修改内容、修改原因、测试方式等
7. 右侧面板可以设置:Reviewers、Assignees、Labels、Projects、Milestone
8. 点击 **Create pull request** 提交
### 7.2 代码审查
PR创建后,被指定的Reviewer会收到通知。Reviewer可以:
**逐行审查代码**:
1. 点击 **Files changed** 标签
2. 鼠标悬停在任意代码行上,会出现一个 `+` 号
3. 点击 `+` 号,可以写评论
4. 可以选择 **Comment**(仅评论)、**Approve**(批准)、**Request changes**(要求修改)
**审查建议**:
- 如果只是小问题(拼写错误、格式问题),用 **Comment** 即可
- 如果代码没问题,用 **Approve** 批准
- 如果有严重问题必须修改,用 **Request changes**
### 7.3 处理审查意见
如果Reviewer提出了修改建议:
1. 在本地修改代码
2. 推送到同一个分支(不需要新建PR,原来的PR会自动更新)
3. 在PR中回复Reviewer的评论
4. 等待Reviewer再次审查
### 7.4 合并Pull Request
当所有审查通过、CI检查通过后,就可以合并了。
GitHub提供三种合并方式:
| 合并方式 | 说明 | 特点 |
|:---|:---|:---|
| **Create a merge commit** | 创建一个合并提交,保留所有提交历史 | 最安全,推荐使用 |
| **Squash and merge** | 把所有提交压缩成一个提交 | 历史更干净 |
| **Rebase and merge** | 把提交逐个rebase到目标分支 | 线性历史,适合熟练用户 |
选择合并方式后,点击对应按钮即可合并。
合并后,GitHub会询问是否删除源分支。如果源分支不再需要,建议删除以保持分支列表整洁。
### 7.5 解决冲突
有时候,你的分支和目标分支有冲突(同一个文件的同一行被同时修改了)。这时GitHub会提示 **This branch has conflicts that must be resolved**。
**在网页端解决冲突**:
1. 点击 **Resolve conflicts** 按钮
2. GitHub会显示冲突的文件,冲突部分用 `<<<<<<<`、`=======`、`>>>>>>>` 标记
3. 编辑文件,保留你想要的内容,删除冲突标记
4. 点击 **Mark as resolved**
5. 点击 **Commit merge**
6. 然后就可以合并PR了
> 💡 **技巧**:为了避免冲突,建议经常从主分支同步更新到你的功能分支。在网页端可以通过创建一个反向PR(从 `main` 到你的分支)来实现同步。
---
## 📌 第八章:Release版本发布
Release是GitHub的版本发布功能,用来标记项目的重要节点(如正式版发布)。
### 8.1 创建Release
1. 在仓库页面右侧栏,点击 **Releases**
2. 或者点击 **Tags** 链接
3. 点击 **Create a new release** 或 **Draft a new release**
4. 填写以下信息:
**Choose a tag**:输入版本号标签,比如 `v1.0.0`。如果这个tag不存在,GitHub会自动创建。
**Target**:选择基于哪个分支或commit创建Release,通常是 `main`。
**Release title**:版本标题,比如"v1.0.0 正式版"。
**Description**:版本说明,建议包含:
- 新增了什么功能
- 修复了什么问题
- 有什么破坏性变更
- 升级注意事项
**Attach binaries**:可以拖拽文件到页面底部区域,附加编译好的程序、安装包等。每个文件最大2GB。
5. 可以选择:
- **Set as the latest release**:设为最新版本
- **Set as a pre-release**:标记为预览版
6. 点击 **Publish release** 发布
### 8.2 版本号规范
推荐使用 **语义化版本号**(Semantic Versioning):
v<主版本号>.<次版本号>.<修订号>
| 版本号变化 | 含义 | 示例 |
|:---|:---|:---|
| 主版本号(Major) | 有不兼容的API变更 | v1.0.0 → v2.0.0 |
| 次版本号(Minor) | 向下兼容的新功能 | v1.0.0 → v1.1.0 |
| 修订号(Patch) | 向下兼容的bug修复 | v1.0.0 → v1.0.1 |
预发布版本可以加后缀:`v1.0.0-alpha`、`v1.0.0-beta`、`v1.0.0-rc.1`。
---
## 📌 第九章:GitHub Pages免费建站
GitHub Pages可以让你用GitHub仓库托管一个静态网站,完全免费。非常适合搭建个人博客、项目文档、作品集等。
### 9.1 快速启动
1. 进入仓库的 **Settings**
2. 滚动到左侧栏的 **Pages**
3. 在 **Source** 下拉菜单中选择部署来源:
- **Deploy from a branch**:从分支部署
- **GitHub Actions**:用Actions自动部署
4. 如果选择"Deploy from a branch":
- 选择分支(通常是 `main`)
- 选择文件夹(`/(root)` 或 `/docs`)
5. 点击 **Save**
6. 等待几分钟,页面顶部会显示你的网站地址:`https://用户名.github.io/仓库名/`
### 9.2 选择主题
在Pages设置页面,点击 **Choose a theme**,GitHub提供了多个内置主题,选一个喜欢的点击 **Select theme** 即可。
### 9.3 自定义域名
如果你有自己的域名,可以设置自定义域名:
1. 在Pages设置页面的 **Custom domain** 输入框中输入你的域名
2. 点击 **Save**
3. 到你的域名DNS服务商,添加一条CNAME记录,指向 `用户名.github.io`
4. 勾选 **Enforce HTTPS** 强制使用HTTPS(建议勾选)
### 9.4 使用Jekyll构建博客
GitHub Pages内置了Jekyll支持。Jekyll是一个静态网站生成器,可以用Markdown写文章,自动生成博客网站。
创建 `_config.yml` 文件配置Jekyll:
```yaml
title: 我的博客
description: 记录技术与生活
theme: minima
在 _posts 目录下创建文章,文件名格式为 YYYY-MM-DD-title.md:
---
layout: post
title: 我的第一篇博客
date: 2026-08-13
---
这是我的第一篇博客内容。
推送后,GitHub会自动构建并部署网站。
📌 第十章:GitHub Actions自动化CI/CD
GitHub Actions是GitHub内置的自动化工具,可以让你在代码推送、PR创建、Issue打开等事件发生时,自动执行一系列操作。
10.1 基本概念
概念
说明
Workflow
工作流,一个YAML文件,定义了自动化流程
Event
触发事件,比如push、pull_request、schedule
Job
任务,一个Workflow可以包含多个Job
Step
步骤,一个Job包含多个Step,按顺序执行
Action
可复用的操作单元,比如 actions/checkout
10.2 创建第一个Workflow
在仓库中创建 .github/workflows/ 目录
在该目录下创建一个YAML文件,比如 ci.yml
编写Workflow内容:
name: CI
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: '3.12'
- name: Install dependencies
run: |
pip install -r requirements.txt
- name: Run tests
run: |
python -m pytest
提交并推送这个文件
进入 Actions 标签页,就能看到Workflow的运行记录
10.3 这个YAML文件每一行什么意思
逐行解读:
name: CI — 工作流名称,显示在Actions页面
on: — 定义触发条件
push: branches: [ main ] — 当代码推送到main分支时触发
pull_request: branches: [ main ] — 当有PR指向main分支时触发
jobs: — 定义任务
test: — 任务名称
runs-on: ubuntu-latest — 在Ubuntu最新版虚拟机上运行
steps: — 定义步骤
uses: actions/checkout@v4 — 使用官方Action,把仓库代码检出到虚拟机
uses: actions/setup-python@v5 — 安装Python
with: python-version: '3.12' — 指定Python版本
run: pip install -r requirements.txt — 安装依赖
run: python -m pytest — 运行测试
10.4 常用Action推荐
Action
用途
actions/checkout@v4
检出代码
actions/setup-python@v5
安装Python
actions/setup-node@v4
安装Node.js
actions/cache@v4
缓存依赖
actions/upload-artifact@v4
上传构建产物
softprops/action-gh-release@v2
自动创建Release
peaceiris/actions-gh-pages@v4
自动部署Pages
10.5 Secrets加密存储
如果你在Workflow中需要用到密码、Token等敏感信息,不要直接写在YAML文件里。使用Secrets:
进入 Settings → Secrets and variables → Actions
点击 New repository secret
输入Name(如 API_TOKEN)和Value
点击 Add secret
在Workflow中引用:${{ secrets.API_TOKEN }}
💡 提示:GitHub Actions对Public仓库完全免费且无限时长。对Private仓库,免费版每月有2000分钟的额度。
📌 第十一章:仓库设置详解
Settings标签页是仓库的控制中心。我们按区域逐个讲解。
11.1 General(通用设置)
Repository name:修改仓库名称。修改后,仓库URL会变化,旧的URL会自动重定向一段时间。
Description:修改仓库描述。
Features:开启/关闭功能模块:
⬜ Wikis:开启Wiki页面
⬜ Issues:开启Issue功能
⬜ Sponsorships:开启赞助功能
⬜ Preserve this repository:归档仓库(只读)
⬜ Discussions:开启讨论区
⬜ Projects:开启项目看板
Pull Requests:设置PR相关选项:
Allow merge commits:允许合并提交
Allow squash merging:允许压缩合并
Allow rebase merging:允许变基合并
Allow auto-merge:允许自动合并
Automatically delete head branches:合并后自动删除源分支
Archived:归档仓库。归档后仓库变为只读,不能再修改代码、创建Issue等。适合标记已停止维护的项目。
Danger Zone(危险区域):
Make this repository public/private:切换公开/私有
Transfer ownership:转移仓库到其他账号或组织
Delete this repository:删除仓库(不可恢复,需要输入仓库名确认)
⚠️ 警告:删除仓库是不可逆操作。删除前请确保已备份重要代码。
11.2 Collaborators(协作者)
邀请其他人参与你的项目:
点击 Add people
输入对方的GitHub用户名或邮箱
选择权限级别:
权限
说明
Pull
只能读取代码
Triage
可以管理Issue和PR,但不能修改代码
Push
可以推送代码
Maintain
可以管理仓库但不能修改设置
Admin
完全权限
点击 Add
被邀请的人会收到邮件通知,接受后就能访问仓库了。
11.3 Branches(分支规则)
在11.5中已详细讲解分支保护规则。这里补充:
Default branch:修改默认分支名称(默认是 main,可以改为 master 或其他)
可以添加多个分支保护规则,每条规则用分支名模式匹配(支持通配符 *)
11.4 Webhooks(网络钩子)
Webhook可以在特定事件发生时,向你的服务器发送HTTP请求。常用于:
代码推送时触发外部CI系统
Issue创建时发送通知到Slack/DingTalk
PR合并时触发部署
配置方式:
点击 Add webhook
Payload URL:你的服务器接收地址
Content type:选择 application/json
Events:选择触发事件(可以选"Send me everything"接收所有事件)
点击 Add webhook
11.5 Secrets and variables
这里管理Workflow中使用的加密变量和明文变量:
Actions secrets:加密存储,适合密码、Token
Actions variables:明文存储,适合非敏感的配置值
Codespaces secrets:给Codespaces用的密钥
Dependabot secrets:给Dependabot用的密钥
11.6 Pages
在第九章已详细讲解。
11.7 Member privileges(成员权限)
设置组织成员的默认权限。如果是个人仓库,这个选项不太常用。
11.8 Interaction limits(互动限制)
可以临时限制谁能评论Issue和PR:
Existing users:只有注册超过一定时间的用户可以互动
Contributors only:只有贡献过代码的人可以互动
Collaborators only:只有协作者可以互动
适合在遭遇垃圾评论攻击时临时启用。
📌 第十二章:个人设置与安全
点击右上角头像 → Settings,进入个人设置页面。
12.1 Profile(个人资料)
Name:显示名称(可以和用户名不同)
Bio:一句话简介
URL:个人网站
Company:公司
Location:位置
Email:邮箱
Profile README:你可以创建一个和用户名同名的仓库(比如你的用户名是 badhope,就创建 badhope/badhope 仓库),在仓库的 README.md 中写的内容会显示在你的个人主页上。很多人用它来做个人介绍页面。
12.2 Account(账号设置)
Username:修改用户名(会影响所有仓库URL,谨慎操作)
Export account data:导出账号数据
12.3 Security(安全设置)
Two-factor authentication(两步验证):强烈建议开启。开启后,登录时除了密码还需要输入手机验证码或Authenticator App的验证码。
Sessions:查看当前登录的设备列表,可以远程注销其他设备。
Security log:安全日志,记录账号的所有重要操作。
12.4 SSH and GPG keys
SSH密钥:用于安全地推送代码,不需要每次输入密码。
添加SSH密钥的步骤:
在本地生成SSH密钥对:
ssh-keygen -t ed25519 -C "your_email@example.com"
将公钥(~/.ssh/id_ed25519.pub 的内容)复制
在GitHub的 SSH keys 页面点击 New SSH key
填写Title(如"My Laptop")和Key(粘贴公钥内容)
点击 Add SSH key
GPG密钥:用于给commit签名,证明commit确实是你本人提交的。配置较复杂,初学者可以暂时跳过。
12.5 Emails(邮箱设置)
可以添加多个邮箱
建议勾选 Keep my email addresses private,这样在公开操作中不会暴露真实邮箱
勾选后,GitHub会给你一个 ID+username@users.noreply.github.com 格式的邮箱地址用于Git提交
12.6 Notifications(通知设置)
控制什么时候收到邮件通知:
Participating:你参与讨论的Issue/PR有新消息时
Watching:你关注的仓库有新动态时
Email notifications:邮件通知的频率和内容
建议设置:
Email notifications at "Participating" level:只在你参与讨论时收到邮件
关闭不必要的Web通知,避免通知爆炸
📌 第十三章:GitHub实用技巧
13.1 搜索技巧
GitHub搜索框支持强大的搜索语法:
语法
说明
示例
language:xxx
按语言搜索
todo language:python
stars:>N
按star数搜索
machine learning stars:>1000
forks:>N
按fork数搜索
react forks:>500
created:>YYYY-MM-DD
按创建时间搜索
rust created:>2026-01-01
pushed:>YYYY-MM-DD
按更新时间搜索
vue pushed:>2026-06-01
user:xxx
搜索某用户的仓库
user:torvalds
in:readme
在README中搜索
in:readme keras
size:>N
按仓库大小搜索
size:>10000
13.2 键盘快捷键
在GitHub页面按 ? 键可以查看所有快捷键。常用的:
快捷键
功能
/
聚焦搜索框
g c
跳转到Code
g i
跳转到Issues
g p
跳转到Pull requests
g a
跳转到Actions
g s
跳转到Settings
t
在文件列表中激活文件搜索
l
在代码文件中跳转到某行
13.3 GitHub CLI
GitHub提供了命令行工具 gh,可以在终端中完成大部分GitHub操作:
安装(macOS):brew install gh
安装(Linux):sudo apt install gh
安装(Windows):winget install GitHub.cli
常用命令:
## 登录
gh auth login
## 创建仓库
gh repo create my-project --public
## 克隆仓库
gh repo clone owner/repo
## 创建PR
gh pr create --title "Add login feature" --body "实现了登录功能"
## 查看PR
gh pr list
gh pr view 123
## 创建Issue
gh issue create --title "Found a bug" --body "描述bug"
## 查看Issue
gh issue list
13.4 GitHub Desktop
如果你不习惯命令行,可以下载 GitHub Desktop(https://desktop.github.com),这是一个图形界面的Git客户端:
可视化的提交、推送、拉取操作
分支管理
PR创建和审查
支持Windows和macOS
13.5 Fork与贡献开源项目
Fork:把别人的仓库复制一份到你自己的账号下。你可以在自己的副本上自由修改,不影响原仓库。
贡献开源项目的完整流程:
在原仓库页面点击 Fork
等待Fork完成后,你就有了一份自己的副本
克隆你自己的副本到本地
创建功能分支
修改代码
推送到你的仓库
在你的仓库页面点击 Contribute → Open pull request
填写PR信息,提交给原仓库
等待原作者审核
💡 建议:在贡献开源项目之前,先阅读原仓库的 CONTRIBUTING.md 文件(如果有的话),里面通常有贡献指南和代码规范。
13.6 GitHub Student Developer Pack
如果你是学生,可以申请GitHub学生包,免费获得大量开发工具和服务的付费版本:
访问 https://education.github.com/pack
点击 Get student benefits
填写学校信息和学生证明
等待审核(通常1-2天)
审核通过后,你可以免费获得:JetBrains全家桶、Copilot、域名、云服务器等数十种福利。
📌 本文要点回顾
注册账号:访问 github.com → Sign up → 填写邮箱、密码、用户名 → 验证邮箱 → 选择Free方案
创建仓库:点击 + → New repository → 填写仓库名、描述 → 选择Public/Private → 勾选README → 选择.gitignore和License → Create
仓库界面:Code(代码)→ Issues(问题)→ Pull requests(合并请求)→ Actions(自动化)→ Projects(看板)→ Wiki(文档)→ Security(安全)→ Insights(数据)→ Settings(设置)
文件操作:Add file → Create new file(创建)/ Upload files(上传);点击文件 → ✏️编辑 / 🗑️删除;每次操作都要填写Commit message
分支管理:创建分支 → 在分支上开发 → 通过PR合并到主分支;善用分支保护规则防止误操作
Issues:用Labels分类、用Milestone管理版本、用 closes #编号 自动关闭Issue
Pull Request:创建PR → 代码审查 → 合并(Merge commit / Squash / Rebase 三种方式)→ 删除源分支
Release:创建tag → 填写版本说明 → 附加文件 → 发布;遵循语义化版本号 v<主>.<次>.<修>
GitHub Pages:Settings → Pages → 选择分支 → 自动生成网站地址 用户名.github.io/仓库名
GitHub Actions:在 .github/workflows/ 下创建YAML文件 → 定义触发条件和步骤 → 自动执行CI/CD
仓库设置:General(基础设置)→ Collaborators(协作者)→ Branches(分支规则)→ Webhooks(钩子)→ Secrets(密钥)
个人安全:开启两步验证 → 配置SSH密钥 → 保持邮箱私密 → 合理设置通知
实用技巧:掌握搜索语法 → 记住键盘快捷键 → 使用GitHub CLI → Fork流程贡献开源
写在最后:GitHub不只是一个代码托管平台,它是全球最大的开发者社区。学会GitHub,不仅是学会一个工具,更是融入一个社区。从今天开始,创建你的第一个仓库,写下你的第一行代码,发布你的第一个Release。代码改变世界,从你的第一个commit开始。
如果这篇文章对你有帮助,欢迎点赞收藏。有任何问题,欢迎在评论区交流。