Git & GitHub 实战开发完全指南:从入门到项目协作
一、Git 与 GitHub 基础概念解析
(一)Git 核心定义
Git 是由 Linus 开发的分布式版本控制系统,其核心价值在于:
- 记录代码每一次修改,支持任意版本回滚
- 实现分布式开发,支持离线工作模式
- 通过分支机制实现并行开发与代码隔离
(二)GitHub 平台定位
GitHub 作为全球最大的代码托管平台,具有以下特性:
- 支持开源协议管理(如 MIT、Apache 等)
- 提供协作开发工作流(PR 机制)
- 集成项目管理、Issue 跟踪等功能
(三)两者协作关系
二、开发环境准备工作
(一)环境搭建步骤
-
Git 安装
- 官网下载对应系统安装包(Git)
- 配置环境变量(Windows 需手动添加)
-
GitHub 账号注册
- 邮箱验证流程
- 用户名设置规范
-
身份信息配置
bash
git config --global user.name \"YourName\"git config --global user.email \"your@email.com\"
(二)SSH 密钥配置详解
- 密钥生成流程
bash
ssh-keygen -t rsa -C \"your@email.com\"# 连续回车使用默认存储路径和无密码验证
-
公钥部署到 GitHub
- 打开
~/.ssh/id_rsa.pub
复制内容 - 登录 GitHub → Settings → SSH and GPG keys → New SSH key
- 打开
-
连接验证
bash
ssh -T git@github.com# 出现 \"successfully authenticated\" 表示配置成功
三、分支管理策略与实践
(一)分支核心概念
- 分支本质:独立的代码开发流,实现并行开发
- 状态转换:工作区 → 暂存区 → 本地仓库 → 远程仓库
(二)标准分支模型
(三)分支操作实战
- 创建与切换分支
bash
git switch -c dev # 从当前分支创建并切换到dev分支git switch小明 # 创建个人开发分支
- 分支状态查看
bash
git branch # 查看本地分支git branch -a # 查看所有分支(含远程)
- 分支合并策略
bash
# 合并到目标分支的标准流程git switch dev # 切换到目标分支git merge --no-ff -m \"合并小明的功能\" 小明
四、完整开发工作流程
(一)远程仓库创建
-
新建仓库步骤
- 登录 GitHub → New Repository
- 配置项说明:
- Repository name: learn-git
- Add README file: 勾选
- .gitignore: 选择对应编程语言(如 Python)
- License: 选择 MIT 协议
-
本地仓库克隆
bash
git clone git@github.com:YourUsername/learn-git.gitcd learn-git
(二)开发阶段操作
- 文件状态管理
bash
git status # 查看状态git add . # 添加所有修改到暂存区git commit -m \"添加V1.0功能实现\" # 提交到本地仓库
- .gitignore 高级用法
- 语法示例:
text
.DS_Store # 忽略Mac系统文件*.png # 忽略所有PNG图片build/ # 忽略build目录
- 语法示例:
(三)协作集成流程
- 代码推送远程
bash
git push origin dev # 推送到远程dev分支
-
PR 提交与合并
- GitHub 操作路径:
- 进入仓库 → Pull requests → New pull request
- 选择源分支(dev)和目标分支(master)
- 填写变更说明 → Create pull request
- Review 通过后点击 Merge pull request
- GitHub 操作路径:
-
分支保护设置
- 路径:Settings → Branches → Add branch protection rule
- 常用配置:
- 必须有指定数量的审批
- 要求线性历史
- 只允许通过 PR 合并
五、高级功能与问题解决
(一)版本回退机制
- 查看提交历史
bash
git log # 查看详细提交记录git log --oneline # 简洁模式
- 回退操作
bash
git reset --hard commit_id # 硬回退到指定版本git reset --soft commit_id # 软回退(保留修改)
(二)冲突解决策略
- 冲突场景示例
text
<<<<<<>>>>>> target_branch
- 解决流程
bash
git merge dev # 检测冲突# 手动编辑解决冲突标记git add conflict_file # 标记为已解决git commit -m \"解决冲突\"
(三)紧急任务处理
- stash 临时存储
bash
git stash # 保存当前工作区状态git stash list # 查看存储列表git stash apply # 恢复最近的存储
- cherry-pick 精准合并
bash
git cherry-pick commit_id # 将指定提交合并到当前分支