文章目录
- GitHub入门到协作:完整学习指南
-
- [四、Git 分支管理](#四、Git 分支管理)
- [五、GitHub 协作开发](#五、GitHub 协作开发)
-
- [5.1 Fork 工作流](#5.1 Fork 工作流)
-
- 适用场景
- [Fork 操作步骤](#Fork 操作步骤)
- [5.2 同步上游仓库](#5.2 同步上游仓库)
-
- [方法一:GitHub 网页端同步](#方法一:GitHub 网页端同步)
- 方法二:终端同步(推荐)
- [5.3 Pull Request 流程](#5.3 Pull Request 流程)
- [5.4 Code Review](#5.4 Code Review)
GitHub入门到协作:完整学习指南
四、Git 分支管理
4.1 分支的概念
分支让你能在不影响主代码的前提下,独立开发新功能。
可以把主分支(main)想象成一篇论文的终稿,功能分支(feature)就是论文的副本------你在副本上写新章节,写好了再合并回终稿。
4.2 常用分支类型
| 分支类型 | 命名规范 | 用途 |
|---|---|---|
| 主分支 | main/master | 存放稳定、可发布的代码 |
| 开发分支 | develop | 团队日常开发分支 |
| 功能分支 | feature/xxx | 开发单个新功能 |
| Bug修复分支 | bugfix/xxx | 修复开发中的 Bug |
| 紧急修复分支 | hotfix/xxx | 修复线上紧急 Bug |
4.3 分支核心操作
bash
# 查看所有分支
git branch
# 创建并切换到新分支(最常用)
git checkout -b feature/login
# 切换分支
git switch main
# 合并分支(先切到目标分支)
git switch main
git merge feature/login
# 删除已合并的分支
git branch -d feature/login
4.4 合并冲突与解决
冲突产生的原因:两个分支修改了同一文件的同一行代码。
模拟冲突场景
- 创建
calculator.py文件:
python
def add(a, b):
result = a + b
return result
- 在
feature分支修改为含税费的版本 - 在
main分支修改为四舍五入的版本 - 合并时触发冲突
解决冲突
冲突文件会包含标记:
python
<<<<<<< HEAD
result = round(a + b, 2) # main分支的修改
=======
result = (a + b) * 1.1 # feature分支的修改
>>>>>>> feature
解决思路:删除标记,保留需要的代码,合并逻辑:
python
result = round((a + b) * 1.1, 2) # 融合两个功能
保存文件后:
bash
git add calculator.py
git commit -m "解决冲突:合并税费和四舍五入功能"
4.5 分支删除
删除本地分支
bash
# 删除已合并的分支
git branch -d feature/login
# 强制删除未合并的分支(谨慎!)
git branch -D feature/unfinished
删除远程分支
bash
git push origin --delete feature/login
误删恢复
bash
# 查看操作历史,找到最后一次提交的哈希值
git reflog
# 从提交记录恢复分支
git checkout -b feature/login 哈希值
4.6 提交规范
提交信息格式
<类型>: <简短描述>
<详细描述(可选)>
类型说明
| 类型 | 说明 | 示例 |
|---|---|---|
| feat | 新增功能 | feat: 新增用户登录接口 |
| fix | 修复 Bug | fix: 修复密码加密错误 |
| docs | 修改文档 | docs: 更新API文档 |
| style | 代码格式调整 | style: 格式化代码 |
| refactor | 代码重构 | refactor: 简化函数逻辑 |
| test | 添加测试 | test: 添加单元测试 |
| chore | 工具配置修改 | chore: 更新.gitignore |
五、GitHub 协作开发
5.1 Fork 工作流
Fork 是把别人的仓库复制一份到你自己的 GitHub 账号下,你可以在副本上自由修改。
适用场景
- 贡献开源项目:给别人的项目提功能/修 Bug
- 学习/二次开发:基于别人的项目做定制开发
- 保存项目快照:防止原作者删除或修改
Fork 操作步骤
- 打开原仓库的 GitHub 页面
- 点击右上角的 Fork 按钮
- 等待几秒,GitHub 自动跳转到你账号下的副本仓库
5.2 同步上游仓库
方法一:GitHub 网页端同步
- 打开你的 Fork 仓库页面
- 点击 Sync fork 按钮
- 点击 Update branch 自动同步
方法二:终端同步(推荐)
bash
# 克隆你的 Fork 仓库
git clone git@github.com:你的用户名/仓库名.git
# 添加上游仓库地址
git remote add upstream git@github.com:原作者/原仓库名.git
# 拉取上游最新代码
git fetch upstream
# 切换到主分支
git switch main
# 合并上游代码
git merge upstream/main
# 推送到你的 Fork 仓库
git push origin main
5.3 Pull Request 流程
- 在 Fork 的仓库中完成修改并提交
- 回到 GitHub 页面,点击 Pull Request 标签
- 点击 New Pull Request
- 选择:
- base repository:原仓库(要合并到的目标)
- head repository:你的 Fork 仓库(修改的来源)
- 填写 PR 标题和描述(说明修改内容)
- 点击 Create Pull Request
5.4 Code Review
PR 创建后,项目维护者会进行代码审查:
- 提出修改建议
- 要求补充测试
- 指出潜在问题
根据反馈修改代码后,PR 会自动更新。审核通过后,维护者会合并你的代码。