- 学习Git的基本工作流程
- 掌握Git的常用命令
- 了解如何使用Git进行版本控制
- 学会如何使用Git进行协作开发
- 掌握Git的最佳实践
---
什么是Git工作流?
**Git工作流**是指使用Git进行版本控制的一套标准化流程和实践方法。它包括:
- 🔄 **版本管理**:跟踪文件的变化
- 🌿 **分支管理**:管理不同的开发分支
- 📝 **提交规范**:规范提交信息
- 🔗 **远程协作**:与远程仓库同步
- 🧹 **代码审查**:确保代码质量
---
Git的基本工作流程
1. 初始化仓库
- **本地初始化**:`git init`
- **克隆远程仓库**:`git clone `
- **添加远程仓库**:`git remote add origin `
2. 日常开发
- **查看状态**:`git status`
- **添加文件**:`git add <文件>` 或 `git add .`
- **提交更改**:`git commit -m "提交信息"`
- **查看历史**:`git log`
3. 分支管理
- **查看分支**:`git branch`
- **创建分支**:`git branch <分支名>`
- **切换分支**:`git checkout <分支名>` 或 `git switch <分支名>`
- **合并分支**:`git merge <分支名>`
- **删除分支**:`git branch -d <分支名>`
4. 远程协作
- **推送代码**:`git push origin <分支名>`
- **拉取代码**:`git pull origin <分支名>`
- **获取更新**:`git fetch origin`
- **查看远程**:`git remote -v`
---
我们的Git工作流实践
在本项目中,我们采用了以下Git工作流:
1. 初始化阶段
- 初始化本地Git仓库
- 添加cnb.cool作为远程仓库
- 配置Git用户名和邮箱
2. 开发阶段
- 每次完成一个小任务后进行提交
- 提交信息清晰明了,描述具体做了什么
- 定期推送到远程仓库
3. 分支策略
- 使用main分支作为主分支
- 所有开发直接在main分支上进行(小型项目)
- 重要版本使用标签标记
4. 同步策略
- 每次操作后及时提交
- 定期推送到cnb.cool
- 确保远程仓库与本地仓库同步
---
Git命令详解
1. 基本命令
| 命令 | 功能 | 示例 |
|------|------|------|
| `git init` | 初始化Git仓库 | `git init` |
| `git clone` | 克隆远程仓库 | `git clone https://cnb.cool/slowdown87/tutorial-project.git` |
| `git status` | 查看工作区状态 | `git status` |
| `git add` | 添加文件到暂存区 | `git add .` |
| `git commit` | 提交更改 | `git commit -m "更新第5章内容"` |
| `git log` | 查看提交历史 | `git log --oneline` |
| `git remote` | 管理远程仓库 | `git remote add cnb https://cnb.cool/slowdown87/tutorial-project.git` |
| `git push` | 推送代码到远程 | `git push cnb main` |
| `git pull` | 从远程拉取代码 | `git pull cnb main` |
| `git branch` | 管理分支 | `git branch` |
| `git checkout` | 切换分支 | `git checkout main` |
2. 高级命令
| 命令 | 功能 | 示例 |
|------|------|------|
| `git diff` | 查看文件差异 | `git diff` |
| `git stash` | 暂存更改 | `git stash` |
| `git reset` | 重置提交 | `git reset HEAD~1` |
| `git tag` | 管理标签 | `git tag v1.0.0` |
| `git revert` | 撤销提交 | `git revert ` |
| `git cherry-pick` | cherry-pick 提交 | `git cherry-pick ` |
| `git rebase` | 变基 | `git rebase main` |
---
Git提交规范
1. 提交信息格式
```
<类型>(<范围>): <描述>
<详细描述>
```
2. 提交类型
- **feat**:新功能
- **fix**:修复bug
- **docs**:文档更新
- **style**:代码风格调整
- **refactor**:代码重构
- **test**:测试相关
- **chore**:构建或依赖更新
3. 提交信息示例
```
feat(chapter05): 添加Git工作流章节
- 编写了Git工作流的基本概念
- 详细介绍了Git常用命令
- 提供了Git提交规范
- 包含了实际操作示例
Closes #1
```
---
Git最佳实践
1. 日常使用
- **小步提交**:每次只提交一个逻辑单元的更改
- **清晰信息**:提交信息要清晰明了
- **定期推送**:定期推送到远程仓库
- **分支管理**:合理使用分支
- **标签管理**:使用标签标记重要版本
2. 协作开发
- **代码审查**:使用Pull Request进行代码审查
- **冲突解决**:及时解决合并冲突
- **同步更新**:定期拉取远程更新
- **分支策略**:制定合理的分支策略
- **规范遵守**:遵守团队的Git规范
3. 安全注意事项
- **不要提交敏感信息**:如密码、API密钥等
- **使用.gitignore**:忽略不需要版本控制的文件
- **定期备份**:定期备份远程仓库
- **权限管理**:合理设置仓库权限
- **审计日志**:定期查看Git日志
---
常见Git问题及解决方案
问题1:合并冲突
- **问题**:合并分支时出现冲突
- **解决方案**:手动解决冲突,然后提交
问题2:误提交
- **问题**:提交了错误的文件或信息
- **解决方案**:使用 `git reset` 或 `git revert` 撤销提交
问题3:远程推送失败
- **问题**:推送代码到远程仓库失败
- **解决方案**:检查网络连接,确认权限,先拉取再推送
问题4:忘记添加文件
- **问题**:提交后发现忘记添加某些文件
- **解决方案**:添加文件后再次提交,使用 `git commit --amend` 修正上次提交
问题5:分支管理混乱
- **问题**:分支过多或管理混乱
- **解决方案**:定期清理不需要的分支,保持分支结构清晰
1. 初始化一个Git仓库
2. 添加一些文件
3. 提交更改
4. 查看提交历史
1. 创建一个新分支
2. 在新分支上进行更改
3. 切换回主分支
4. 合并新分支
1. 添加远程仓库
2. 推送代码到远程
3. 拉取远程更新
4. 解决合并冲突
1. 按照规范编写提交信息
2. 练习不同类型的提交
3. 查看提交历史
4. 修正错误提交