Git 实战系列(十五)Git 学习之路

学习 Git 快一年了,感受良多,总结如下。

如何开始?

早年的时候,为了获取优质的项目和资源,注册了 GitHub 的账号,但仅仅简单用了 Star 和 Clone 功能。后来开始想在 GitHub 上面托管一些资源,陆续做了一些功课:

  • Git 官方文档,第一手官方材料,由浅入深,涉及 Git 各方面的内容,建议有实操经验的同学深入阅读。
  • GitHub 帮助文档,偏向实操,建议初学者阅读。而且里面涉及到一些 GitHub 特性(图形化操作、Social、Pages)可以与 Git 互补。
  • 廖雪峰的博客

其实网上相关教程、博客、书籍很多,但建议初学者重心先放在:

  • 基础命令的实操(推荐 Git cheatsheet,按功能分组命令,便于记忆)
  • 简单概念的理解(例如重点关注 Git 文件流转的三个工作区域及远程仓库,至于配置、分支(我知道分支是 Git 的杀手锏功能,但事实上很多人只用到一个 master 分支)、工作流等先统统忽略)

然后安装好 Git,选择好一个代码托管商(如国外 GitHub,国内 GitCafe),赶紧先跑起来,再好起来!如果你曾大致了解过 Git 这一门技术,你会发现这是属于“记忆型”的技术,需要多用才熟能生巧。

我的学习轨迹

第一轮

第一轮学习从零开始,大致如下:

  • 简单阅读了一些文档,用思维导图做成笔记。
  • 安装客户端,实操命令。
  • 把所做所得整理成 PPT,用自己的理解在团队内部做了一次技术分享,反响不错,还加深了自己的理解。

第二轮

第二轮的起因是因为想用 GitHub Pages 服务搭建一个静态博客写写文章。由于已经有了第一轮的沉淀,这回学习速度就很快了。还顺便学会了 Markdown 语法和 Hexo 博客搭建。

第三轮

第三轮是因为跳槽后新公司正好使用的是 Git,但由于团队成员用得都不熟练,因此利用空余时间进一步研究了 Git 的进阶内容:

  • 分支管理与团队工作流程
  • 冲突解决方案
  • pullmergelogresetcheckout 等实用命令
  • rebasecherry-pick 等高级命令

整个过程使用的是“INK 学习法”,并再次将理解的内容整理成 PPT 与团队分享。这轮学习的不同之处在于:

  • 以往都是个人使用 Git,使用的命令都很简单。当与团队一起使用时,问题规模不同,对工具的理解也会进一步加深。
  • 与第一次纯粹分享不同,这次侧重于推广我的方案,规范团队的工作流程,将知识转化为生产力。

总结

学习的轨迹应当是螺旋向上,难易度逐轮递增。每一轮的学习主题还应有所侧重,意图一口一个大胖子的行为会噎死自己 :)

如今 Git 对我来说不止是门技术,更是一种生活方式。除了工作中每天都要用到,通过它还“连接”了我与开源世界。

参考

https://learngitbranching.js.org/

告别 SVN,Git 成 “独苗”:GitHub 在 13 年后宣布淘汰 Subversion 支持