- 22.1 为开源代码提供版本库
- 22.2 创建 GitHub 的版本库
- 22.3 开源代码的社会化编程
- 22.4 关注者
- 22.5 新闻源
- 22.6 复刻(Fork)
- 22.7 创建合并请求(Pull Request, PR)
- 22.8 管理合并请求
- 22.9 通知
- 22.10 查找用户、项目和代码
- 22.11 维基(Wiki)
- 22.12 GitHub Pages(用于网站的 Git)
- 22.13 页面内代码编辑器
- 22.14 对接 SVN
- 22.15 标签和自动清理
- 22.16 组织(Organization)
- 22.17 REST 风格的 API
- 22.18 闭源的社会化编程
- 22.19 最终开放源代码
- 22.20 开发模型
- 22.21 GitHub 企业版
- 22.22 关于 GitHub 的总结
GitHub 是全球最流行的 Git 远程托管平台,提供了强大的开源协作、代码管理、项目管理和CI/CD 集成功能。本章将介绍如何使用 GitHub 进行开源代码管理、如何创建和管理 GitHub 版本库,以及 GitHub 的高级功能,如 Pull Request、Issues、自动化等。
22.1 为开源代码提供版本库
GitHub 是一个理想的开源代码托管平台,适用于:
- 个人项目:托管代码并进行版本管理。
- 团队协作:多人开发、代码审查、任务跟踪。
- 开源贡献:允许社区成员提交 Pull Request(PR)。
创建一个开源项目的关键步骤:
- 选择开源许可证(MIT、GPL、Apache 等)。
- 添加
README.md
(介绍项目功能、安装方法)。 - 创建
CONTRIBUTING.md
(贡献指南)。 - 配置
.gitignore
(忽略不必要的文件)。 - 启用 Issues 和 Discussions(让社区参与)。
22.2 创建 GitHub 的版本库
22.2.1 在 GitHub 上创建新仓库
- 打开 GitHub 并登录。
- 点击 “New Repository” 按钮。
- 设置仓库名称(
my-project
)、可见性(Public/Private),并选择初始化选项(如README.md
)。 - 点击 Create repository 创建仓库。
22.2.2 将本地仓库推送到 GitHub
如果本地已有 Git 仓库,可以执行以下命令推送到 GitHub:
git remote add origin https://github.com/user/my-project.git
git branch -M main
git push -u origin main
22.3 开源代码的社会化编程
GitHub 不仅是代码托管平台,还是一个社交开发平台,开发者可以关注、点赞、讨论和协作。
22.4 关注者
在 GitHub 上,用户可以关注(Follow)其他开发者,关注后可以在GitHub Feed 中看到对方的动态(新仓库、Pull Request、Star 等)。
# 关注某个用户(在 GitHub 界面上)
https://github.com/user
22.5 新闻源
GitHub 主页上的 News Feed 显示了关注的项目、组织和开发者的最新活动,包括:
- 代码提交(Commits)
- Issue 更新
- Pull Request 状态
- 关注的仓库的变更
22.6 复刻(Fork)
Fork 允许复制他人的仓库到自己的账户,适用于:
- 贡献开源项目:Fork 代码,修改后提交 Pull Request。
- 备份和实验:在不影响原仓库的情况下进行修改。
# 在 GitHub 上 Fork 仓库后,克隆到本地
git clone https://github.com/myusername/forked-repo.git
22.7 创建合并请求(Pull Request, PR)
Pull Request(PR)是 GitHub 协作的核心功能,允许开发者提交代码修改供仓库维护者审核和合并。
22.7.1 提交 PR 的步骤
Fork 仓库并克隆到本地:
git clone https://github.com/myusername/forked-repo.git
cd forked-repo
git checkout -b my-feature
进行修改并提交:
git add .
git commit -m "添加新功能"
git push origin my-feature
在 GitHub 上提交 PR:
- 进入 Fork 的仓库页面,点击 New Pull Request。
- 选择 原仓库的 main 分支 作为目标分支,自己的分支 作为源分支。
- 添加 PR 描述并提交。
维护者审核并合并:
- 维护者可以评论、请求修改,或者直接合并 PR。
如果 PR 被合并,可以删除本地分支:
git branch -d my-feature
22.8 管理合并请求
- 查看所有 PR:
进入 GitHub 仓库,点击 Pull Requests。 - 审查 PR:
维护者可以使用 GitHub 提供的 Review 工具进行代码审查。 - 合并 PR:
可以选择:- Merge commit(创建合并提交)。
- Squash and merge(压缩提交历史)。
- Rebase and merge(保持线性历史)。
22.9 通知
GitHub 提供 Issues、PR、Discussions 的通知系统:
- 通过 邮件/桌面通知 订阅关注的仓库或 PR 变更。
- 使用 @mentions(@user) 提醒特定成员。
22.10 查找用户、项目和代码
在 GitHub 搜索框中,可以:
- 搜索仓库:
repo:owner/repository-name
- 搜索代码:
function foo() in:file
- 搜索 Issues:
is:issue is:open label:bug
# 使用 GitHub API 搜索
curl "https://api.github.com/search/repositories?q=machine+learning"
22.11 维基(Wiki)
GitHub Wiki 允许开发者为项目添加文档。可以在 Settings
→ Wiki
选项中启用。
22.12 GitHub Pages(用于网站的 Git)
GitHub 提供 GitHub Pages,用于托管静态网站。创建 gh-pages
分支即可自动部署网站:
git checkout --orphan gh-pages
git add .
git commit -m "初始化 GitHub Pages"
git push origin gh-pages
然后在 仓库 Settings → Pages 启用页面。
22.13 页面内代码编辑器
GitHub 允许直接在线编辑代码文件:
- 打开文件 → 点击铅笔图标 ✏️
- 编辑后提交更改
22.14 对接 SVN
GitHub 兼容 SVN,可使用 SVN 方式检出:
svn checkout https://github.com/user/repo/trunk
22.15 标签和自动清理
GitHub 允许给 Issue 和 PR 添加标签(labels),可以自动化管理任务。例如:
bug
- Bug 相关问题feature
- 新功能请求
22.16 组织(Organization)
GitHub 允许创建组织(Organization),适用于团队协作:
- 组织成员可以分配不同的权限(Owner、Member)。
- 支持组织级别的仓库管理。
22.17 REST 风格的 API
GitHub 提供 API,可以自动化操作,例如获取仓库信息:
curl "https://api.github.com/repos/user/repo"
22.18 闭源的社会化编程
GitHub 也支持私有仓库,适用于闭源开发和企业协作。
22.19 最终开放源代码
如果要将私有仓库变成开源,只需在 Settings 中修改 Public。
22.20 开发模型
GitHub 支持多种开发模型,如:
- Git Flow
- GitHub Flow
- Forking Workflow
22.21 GitHub 企业版
GitHub 提供企业版(GitHub Enterprise),适用于公司内部部署,提供更高级的权限管理和 CI/CD 集成。
22.22 关于 GitHub 的总结
本章介绍了 GitHub 的主要功能,包括 创建仓库、Pull Request、开源协作、GitHub Pages 等。GitHub 使 Git 更易用,并提供了强大的团队协作工具,使其成为开源和企业开发的首选平台。