Git 专业阶段:驾驭真实开发场景,成为开源项目领航者!
目标: 掌握 Git 在复杂开发场景中的高级应用,深入理解 GitHub 生态,成为能够部署生产级项目、设计开源协作机制的专家!
学习资料:
● 《Pro Git》: https://bingohuang.gitbooks.io/progit2/content/ (深入理解 Git 的最佳资源)
● 【GeekHour】一小时Git教程: https://www.bilibili.com/video/BV1HM411377j (回顾基础知识,巩固理解)
● GitHub 官方文档: 学习 GitHub Pages, Actions, Issues, Projects 的使用方法。
晋级指标:
● 通过标准为完成ai评测达到100分后方可进入下一阶段关于更高阶训练营学习,你也就掌握了对git的使用,方便你后面参与开源贡献
你将学到什么?
● GitHub 生态深度集成: 玩转 GitHub Pages、Actions、Issue、Project,让你的项目如虎添翼!
● GitHub Pages 自动化部署: 一键部署你的静态网站,让全世界都能访问!
● GitHub Actions CI/CD: 设计自动化构建、测试和部署流水线,解放你的双手!
● 开源项目管理: 学习开源项目的组织、协作和治理,打造活跃的社区!
● 贡献者工作流: 设计清晰的贡献者指南,吸引更多人参与你的项目!
● PR 模板与代码审查: 规范代码审查流程,保证代码质量!
● Issue 分类与 Project 看板: 有效管理 Issue,使用 Project 看板跟踪项目进度!
● 版本发布流程: 通过 Release 和 Changelog,规范发布软件版本!
● 高级 Git 技巧: rebase, reset, stash, cherry-pick, submodule,让你的 Git 技能更上一层楼!
你将会做到:
● 部署并维护生产级 GitHub 项目: 从零开始,搭建一个可以实际运行的 GitHub 项目。
● 设计完整的开源社区协作机制: 制定贡献者指南、代码审查规范、Issue 管理流程。
● 搭建博客部署: 使用 Hexo 搭建博客,并通过 GitHub Pages 自动部署。
● 独立完成: 从零搭建文档型开源项目(含 CI/CD)
● 为现有项目: 设计贡献者指南(CONTRIBUTING.md)
推荐实战项目:
1. 从零搭建文档型开源项目(含 CI/CD):
a. 选择一个你感兴趣的主题,创建一个文档型开源项目。
b. 编写项目文档、示例代码和测试用例。
c. 使用 GitHub Actions 搭建 CI/CD 流水线,实现自动化构建、测试和部署。
d. 创建 README.md, LICENSE, CONTRIBUTING.md 等文件。
2. 为现有项目设计贡献者指南(CONTRIBUTING.md):
a. 选择一个你喜欢的开源项目,阅读其代码和文档。
b. 为该项目设计一份详细的贡献者指南,包括代码风格、提交规范、Issue 提交流程等。
c. 提交 Pull Request,为开源社区做贡献。
3. 搭建博客部署(Hexo + GitHub Pages):
a. 使用 Hexo 搭建个人博客。
b. 配置 GitHub Pages,实现博客的自动化部署。
c. 撰写博客文章,分享你的知识和经验。
行动指南 (一步一步来):
1. GitHub Pages 自动化部署:
a. 学习 GitHub Pages 的基本原理。
b. 创建一个静态网站,或者使用 Hexo、Jekyll 等静态网站生成器。
c. 将网站代码推送到 GitHub 仓库。
d. 配置 GitHub Pages,自动部署你的网站。
2. GitHub Actions CI/CD:
a. 学习 GitHub Actions 的基本概念。
b. 创建一个 GitHub Actions 工作流文件 (.github/workflows/main.yml)。
c. 配置工作流,实现自动化构建、测试和部署。
d. 提交代码,触发工作流,观察运行结果。
3. 开源项目管理:
a. 阅读优秀的开源项目,学习其组织、协作和治理方式。
b. 创建一个开源项目,或者参与现有的开源项目。
c. 使用 GitHub Issues 和 Project 看板管理项目。
d. 制定贡献者指南,吸引更多人参与你的项目。
4. 贡献者工作流:
a. 学习 Fork 工作流的基本流程。
b. Fork 一个开源项目。
c. 修改代码,提交 Pull Request。
d. 参与代码审查,学习代码审查规范。
5. 高级 Git 技巧:
a. git rebase: 修改提交历史,使提交记录更清晰。 (谨慎使用,避免破坏公共分支的历史)
b. git reset: 回退版本,可以选择保留或丢弃修改。
c. git stash: 暂存当前修改,稍后再恢复。
d. git cherry-pick: 选择性地合并提交。
e. git submodule: 管理子模块,方便依赖第三方代码。
核心命令 (灵活运用!) :
● git rebase: 变基操作
● git reset: 版本回退
● git revert: 撤销提交
● git stash: 暂存修改
● git cherry-pick: 选择提交
● git submodule: 子模块管理
关键参数考核:
● git rebase -i HEAD~<数字>: 进入交互式模式修改最近的提交历史。 (修改提交信息,合并提交,删除提交等) 然后根据提示操作,pick保留提交,reword 修改提交信息,squash 合并提交,drop 删除提交。
○ git rebase --continue: 继续 rebase 过程。
○ git rebase --abort: 终止 rebase 过程。
● git reset --soft HEAD~1: 回退到上一个提交,但保留修改在暂存区。 (方便修改后重新提交)
● git reset --hard HEAD~1: 回退到上一个提交,彻底丢弃所有未提交的修改。 (谨慎使用!)
● git stash save "message": 为暂存内容添加描述,方便查找。
○ git stash list: 查看所有暂存记录。
○ git stash apply <stash_id>: 应用指定的暂存记录。
○ git stash drop <stash_id>: 删除指定的暂存记录。
● git submodule update --init --recursive: 递归初始化子模块。 (克隆包含子模块的项目后,需要执行此命令)
学习提示:
● 参与开源项目! 这是学习 Git 和 GitHub 的最佳方式。
● 多阅读 GitHub 官方文档! 掌握 GitHub 的各种功能和特性。
● 关注 Git 和 GitHub 的最新动态! 学习新的技术和工具。
● 分享你的知识和经验! 撰写博客文章,参与技术讨论,帮助他人学习。
恭喜你即将成为 Git 和 GitHub 的专家! 利用好这个阶段的学习,打造属于你的开源项目,为社区贡献你的力量!