GitHub入门协作

文章目录


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 合并冲突与解决

冲突产生的原因:两个分支修改了同一文件的同一行代码。

模拟冲突场景
  1. 创建 calculator.py 文件:
python 复制代码
def add(a, b):
    result = a + b
    return result
  1. feature 分支修改为含税费的版本
  2. main 分支修改为四舍五入的版本
  3. 合并时触发冲突
解决冲突

冲突文件会包含标记:

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 操作步骤
  1. 打开原仓库的 GitHub 页面
  2. 点击右上角的 Fork 按钮
  3. 等待几秒,GitHub 自动跳转到你账号下的副本仓库

5.2 同步上游仓库

方法一:GitHub 网页端同步
  1. 打开你的 Fork 仓库页面
  2. 点击 Sync fork 按钮
  3. 点击 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 流程

  1. 在 Fork 的仓库中完成修改并提交
  2. 回到 GitHub 页面,点击 Pull Request 标签
  3. 点击 New Pull Request
  4. 选择:
    • base repository:原仓库(要合并到的目标)
    • head repository:你的 Fork 仓库(修改的来源)
  5. 填写 PR 标题和描述(说明修改内容)
  6. 点击 Create Pull Request

5.4 Code Review

PR 创建后,项目维护者会进行代码审查:

  • 提出修改建议
  • 要求补充测试
  • 指出潜在问题

根据反馈修改代码后,PR 会自动更新。审核通过后,维护者会合并你的代码。


相关推荐
yyuuuzz1 天前
aws亚马逊入门常见认知误区
运维·服务器·网络·云计算·github·aws
逛逛GitHub1 天前
你的 Mac 就是一个 AI Agent,4B 模型本地操控电脑。
github
铁皮哥1 天前
【后端/Agent 开发】给你的项目配置一套 .claude/ 工作流:别再裸用 Claude Code 了!
java·windows·python·spring·github·maven·生活
Resistance丶未来1 天前
Agency-Agents 多智能体协作系统落地指南
python·大模型·nlp·github·copilot·claude·gemini
輕華2 天前
YOLOv5 实战:从 GitHub 拉取到自定义数据集训练
yolo·github
海域云-罗鹏2 天前
豆包开启付费订阅,想白嫖越来越难了,企业不如部署自己的算力服务器
服务器·人工智能·github
遁神银灵子2 天前
OMO(oh-my-openagents)插件在OpenCode Desktop v1.4.33以上版本失效问题研究
github
码流怪侠2 天前
【GitHub】TextGen:开源本地大模型运行平台的终极解决方案
python·程序员·github
小雨青年2 天前
GitHub Copilot Commit Message 生成与自定义配置优化指南
人工智能·github·copilot
无限进步_2 天前
【C++】AVL树完全解析:从平衡因子到四种旋转
c语言·开发语言·数据结构·c++·后端·算法·github