Appearance
第14章:拓展学习方向
14.1 Git 高级特性(git rebase、git cherry-pick 等,进阶必备)
1. git rebase(变基)
功能:将一个分支的提交应用到另一个分支上,使提交历史更加线性。
用法:
bash
# 切换到要变基的分支
git checkout feature-branch
# 执行变基,将 feature-branch 的提交应用到 main 分支上
git rebase main注意:
- 不要对已经推送到远程仓库的提交使用 rebase
- rebase 会改变提交历史,使用需谨慎
2. git cherry-pick(挑选提交)
功能:从一个分支中选择特定的提交应用到当前分支。
用法:
bash
# 查看目标分支的提交历史
git log --oneline other-branch
# 选择特定的提交应用到当前分支
git cherry-pick <提交哈希值>应用场景:
- 只需要其他分支的某个特定功能
- 修复在多个分支中都存在的 bug
3. git bisect(二分查找)
功能:通过二分查找定位引入 bug 的提交。
用法:
bash
# 开始二分查找
git bisect start
# 标记当前版本为有 bug
git bisect bad
# 标记某个版本为无 bug
git bisect good <无 bug 的提交哈希值>
# Git 会自动切换到中间版本,测试后标记好坏
git bisect bad/good
# 找到引入 bug 的提交后,结束二分查找
git bisect reset4. git submodule(子模块)
功能:在一个 Git 仓库中包含另一个 Git 仓库。
用法:
bash
# 添加子模块
git submodule add <子模块地址> <路径>
# 克隆包含子模块的仓库
git clone --recursive <仓库地址>
# 更新子模块
git submodule update --remote14.2 持续集成/持续部署(CI/CD)与 Git 结合(了解即可)
1. CI/CD 概念
- 持续集成(CI):频繁地将代码集成到主干分支,每次集成都通过自动化测试验证
- 持续部署(CD):将通过测试的代码自动部署到生产环境
2. Git 与 CI/CD 的结合
常用 CI/CD 工具:
- GitHub Actions
- GitLab CI/CD
- Jenkins
- Travis CI
工作流程:
- 开发者提交代码到 Git 仓库
- CI 工具自动触发构建和测试
- 测试通过后,CD 工具自动部署到目标环境
示例(GitHub Actions):
yaml
# .github/workflows/ci.yml
name: CI
on: [push, pull_request]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set up Node.js
uses: actions/setup-node@v2
with:
node-version: '14'
- name: Install dependencies
run: npm install
- name: Run tests
run: npm test15.3 大型项目 Git 管理规范(企业级实践)
1. 分支管理策略
Git Flow:
- master/main 分支:生产代码
- develop 分支:开发集成
- feature 分支:功能开发
- release 分支:版本发布
- hotfix 分支:紧急修复
GitHub Flow:
- main 分支:生产代码
- feature 分支:功能开发
- 合并请求:代码审查
2. 提交规范
Conventional Commits:
<类型>(<范围>): <描述>
[可选的正文]
[可选的页脚]类型:
- feat:新功能
- fix:修复 bug
- docs:文档更新
- style:代码风格修改
- refactor:代码重构
- test:测试相关
- chore:构建或依赖更新
3. 代码审查流程
- 开发者创建功能分支并提交代码
- 推送分支到远程仓库
- 创建合并请求/PR
- 团队成员审查代码
- 审查通过后合并到主分支
- 删除功能分支
15.4 开源项目贡献流程(fork + PR 完整操作)
1. 贡献步骤
- Fork 仓库:在 GitHub 上 fork 目标开源仓库到自己的账号
- 克隆仓库:将 fork 后的仓库克隆到本地bash
git clone <fork后的仓库地址> cd <仓库名> - 创建分支:创建新的功能分支bash
git checkout -b feature-new - 开发代码:实现功能或修复 bug
- 提交代码:提交修改并推送到远程bash
git add . git commit -m "feat: 添加新功能" git push origin feature-new - 创建 PR:在 GitHub 上创建从自己分支到原仓库的 Pull Request
- 代码审查:原仓库维护者审查代码
- 合并代码:审查通过后,代码被合并到原仓库
2. 同步原仓库更新
bash
# 添加原仓库为 upstream
git remote add upstream <原仓库地址>
# 拉取原仓库更新
git fetch upstream
# 合并到本地 main 分支
git checkout main
git merge upstream/main
# 推送到自己的 fork 仓库
git push origin main通过学习这些拓展内容,你可以更深入地了解 Git 的高级功能和企业级应用场景,为成为 Git 专家打下基础。
