作者 | mozlingyu

来源 | 少数派

用游戏的方式来学习,是一种有趣而高效的方式。

从刚接触电脑时的打字练习软件 金山打字通,到程序猿写代码的利器 Vim 都有小游戏(金山打字通游戏、VIM Adventures)来帮助我们入门。

当你的目标从掌握技能转变为打通游戏之后,学习本身也就不再痛苦。在完成每一关的过程中,都能增加我们的技能熟练度和成就感。

而 Learn Git Branching,就是一个用小游戏带你入门的 Git 的网站。

为什么要学习 Git

Git 是一种分布式的版本管理系统,作用和网盘有点类似,但是功能性和灵活性都更强大。

如果你是一个计算机专业的学生或从业者,Git 的重要性不言而喻;但是对普通人而言,Git 也有备份数据、保存历史记录等重要作用。

不怕断电、断网

数据无价,但很多时候我们无法保证自己的电脑不出问题。有很多时候我们会怀念上一个小时、前天或不久以前自己写的那些文字、画过的那些图,如何完好的保存数据是个永远的话题。将工作保存在云端也许会增加我们内心的安全感,这也是很多人会用网盘进行备份的原因。

Git 的「本地提交」较好地解决了这个问题,它的工作方式大概是这样:即使没网络,我们也可以先工作,等到连上网络后再打包上传。每个文档的名字都写有主要的工作(修改)内容,而且我们还能清楚地看到文档之间的区别和改动,Git 还会自动把历史纪录保存下来。

对于越来越多开始从事移动办公、远程工作的人来说,由于网络环境不稳定,即使他不编程,也能从 Git 中受益。

严肃写作的一个个节点

iOS 上的知名笔记工具 Drafts 会在你写作时,每隔一分钟帮你保存一份当前文档的「快照」,这样就可以方便地找回之前的某个写作版本了。你觉得不满意而删除的一段文字,总可以在历史版本中找回,很贴心。

保存写作的历史版本其实就是建立写作节点的过程。而这,也是 Git 所擅长的。

对于论文、书籍这些严肃的写作内容来说,我们在写作的时候不会频繁的更改。深思熟虑之后,在一个节点时,我们有必要保存一下这一阶段的成果。同时,我们在对以前工作进行修改之后,也希望能便利地显示和以往的不同。

Git 最原本的使用方式

Git 是一个分布式版本控制软件,于 2005 年以 GPL 发布。它最初是为更好地管理 Linux内核 开发而设计。它不需要服务器端软件就可以运作版本控制,使得源代码的发布和交流极其方便。

GitHub 是通过 Git 进行版本控制的源代码托管服务,我们每个人都可以把自己的代码托管在上面。同时,也可以看看别人写的代码,相互交流,极大方便了软件项目的多人协作开发,也推动了开源软件社区的壮大。

GitHub 所具有的社交性让很多人戏称为最大的同性交友网站(男性用户占绝大多数)。如果你愿意,可以把别人的代码下载到本地随意修改,放心这不会影响他人。

总之,在 GitHub 上,大家都用同一种语言进行代码仓库的操作,那就是本文的主角:Git。

如果你想开始学编程,一定想记录一下自己成长的路径。想必也一定会去 GitHub 看一看,这时学一下 Git 不是顺理成章的吗?

怎么学习 Git

曾经我在好奇心的驱使下去学习最浅显易懂的 Git 教程《廖雪峰的 Git 教程》。

但经过一段时间之后,我发现自己仅仅会使用 git clonegit addgit commitgit push 等简单语句。之后多次查看 git rebase 的用法,也一直没有理解。

我们来看看最基本的几条命令有什么作用:

git clone 克隆:下载远程代码仓库到本地;
git add 添加:添加文件、修改后的文件到暂存区;
git commit 提交:建立本地仓库的工作节点;
git push 推送:将本地仓库推送到远程代码托管服务、网站。

就像很多次把学过的知识还给老师的经历,这次只记住几个简单命令的过程依然没让我失望。这些命令是我平时使用最多的,所以记得最牢,而其他命令只能用到时再去查了。没有经过实践的知识好像无法停留在脑子里。

前几天在 twitter 上闲逛,发现了一个可以交互式学习 Git 的网站 Learn Git Branching。尝试了一下发现效果真的很棒,有一种在玩编程游戏的感觉。

回想啃着玩 Human Resource Machine 的经历,证明不在于知识本身多艰深,只要学习曲线不陡峭,咱都能爬上去。

Learn Git Branching

https://learngitbranching.js.org

网站是有中文的,而且界面很不错,给人的第一印象很友好。

关卡选择界面可以看到,有「主要」、「远程」两部分。每一部分的内容不多,覆盖了基本的用法。每一关都是一个模拟的小项目,通过上手操作很容易获得代入感。代码本身的用法在玩游戏的过程中领会到,这种感觉很棒,让人上瘾。

教程的每一关都有引导,告诉你示范动作是怎样的、会有什么结果。稍作了解之后就可以自己上手探索。模仿之前教的动作,做错了可以 reset 命令从头开始。完成之后,可以用 show solution 命令查看答案。这种即时反馈的学习让过程变得有趣。

从 Git 到 GitHub

说了这么多,简单讲一下具体的流程:

  1. git clone 下载代码到本地。

  2. 创建了自己的文件,或者进行了修改,可以用 git add . 把所有文件加入暂存区,等待建立节点。

  3. git commit -m "这一阶段工作描述" 尽量细化你的节点,别做了很多工作才提交一次呀。

  4. git push 把之前建立的一系列节点推送到 GitHub 发布、保存。

  5. git pull 将 GitHub 的改动同步到本地,比如你在办公室电脑的改动同步到家里,或者多人协作项目中他人的改动同步到本地。

总结一下就是:「记录修改、本地提交、传到云端」的过程。

其他学习资源

除了之前文章中提到的 廖雪峰的 Git 教程 外,还有很多学习资料。比如:

Pro Git 第二版

http://bit.ly/2H7A7Lg

这本书被誉为 Git 学习的圣经,作者是 Scott Chacon 和 Ben Straub。Scott Chacon 在 GitHub 工作,自称 Git 的布道者。你可以在网站上免费阅读这本书,也可以下载他们提供的电子版本。

git-recipes

http://bit.ly/2Z4jw0M

它 童仲毅 (geeeeeeeeek@github) 对很多英文资料进行翻译、整理的集合教程。包含入门基础、进阶知识和应用范例。这些英文资料主要包括 GitHub 竞争者 Bitbucket 的 Git 教程。

Udacity Git 课程

http://bit.ly/2H5PZhi

谷歌无人车之父 Sebastian Thrun 创办的 优达学城(Udacity)上面的 免费 Git 课程。这门课程由优达学城与 GitHub 共同制作,介绍进行版本控制的基础知识,重点讲解 Git 版本控制系统以及 GitHub 协作平台。如果你更喜欢这种上课方式,这门课程随时都可以开始学习。

happypeter1983 的 Git 视频教程

http://bit.ly/2Z6rS87

这份教程就更进阶了一些。讲到了一些高级命令的用法。当然还有其他学习资源。

以上,便是今天的分享,觉得内容对你有所帮助的,还请点个「在看」支持,谢谢各位。

---END---

最近热文:一周内B站疯转5.6W次,好东西呀!网上常说的阿里 325,375 ,你真的知道吗 !?为什么有些大公司的技术弱爆了?
用Python爬了我的微信好友,他们是这样的...LeetCode1-20题汇总,速度收藏!
限时加入!程序员读者微信群,先到先得!2T技术资源大放送!包括但不限于:C/C++,Linux,Python,Java,人工智能,考研,软考,英语,等等。在公众号内回复「资源」,即可免费获取!回复「社群」,可以邀请你加入读者群!

点个在看少个 bug ????

厉害了!寓教于乐,用玩游戏的方式学习 Git!相关推荐

  1. 游戏化方式学习Git指令

    最近学习Git命令,推荐一个超级棒的Git命令的学习项目,而且是一个寓教于乐的游戏项目,简直6的不要不要的,赶紧来玩着学起来吧- 项目名字叫做:learnGitBranching,它是一个基于虚拟化技 ...

  2. 使用Python写俄罗斯方块,以游戏的方式学习编程

    本文将用Python写一个终端版俄罗斯方块,用游戏的方式学习编程. 这个小游戏分享给学习Python的朋友,感受一下Python的魅力,锻炼编程思维. 更多小游戏请看 这里. 演示效果图见下文. 代码 ...

  3. 用玩游戏的方式操控树莓派小车之[代码部分].2

    目录: 目录 目录: 前言: 心路历程: 编程部分: 第一部分: 第二部分: 前言: 书接上回啊,上回不是说到,我想通过用操作游戏的方式来操作这个小车.那么这个编程部分呢,就分为两部分,第1部分就是怎 ...

  4. 没想到吧!玩游戏还能学习编程,这15款编程游戏你一定要看看

    作者 |创客星辰 来源 | 辰语学习笔记 Coding Games 一边玩游戏,一边挑战编程难题.Coding games支持包括PHP.C.JavaScript在内的20多种编程语言.用户界面功能强 ...

  5. 怎么用小学生计算机玩游戏,小学生如何学习计算机

    由于科技水平与生活水平的提高,使得各类电子产品已经成为了日常生活中必不可少的物品了,不仅可以用来进行娱乐活动,还可以利用互联网的优势来开阔眼界.那么对于小学生来说,该怎样才能学会计算机并以此来提高学习 ...

  6. 管理篇:怎么确定下面的人是真的在玩游戏(或者学习工作内容)

    本期文章适用于管理层人员,考验考察新人,对游戏的熟悉度.理解度,最重要的还有态度. 文章目录 方式一.参考对应指标(结果指标,简单粗暴) 方式二.以文档形式,记笔记(细节指标) 新人视角:你细品一下, ...

  7. 玩游戏就能学习python,太酷炫了吧!

    当前AI人才极度紧缺,据<中国ICT人才生态白皮书>研究分析,到2018年底,我国人工智能人才缺口将突破100万,到2020年,这一数字将攀升到226万. 在过去的几年中,Python已经 ...

  8. 刺激战场模拟器过检测的被封号了怎么办?电脑控制手机玩游戏了解一下

    最近腾讯又搞大事情了,封禁了一大批模拟器用户,准确地说是用模拟器过检测匹配手机的玩家,但是很多正常的模拟器玩家也被误判封禁了,让很多人愤愤不平,纷纷转战刺激战场国际服. 其实除了可以用模拟器在电脑上玩 ...

  9. 美术课上用计算机玩游戏,电脑绘画校本课程总结

    本学期,根据学校的安排,我进行了电脑绘画校本课程的组织与教学工作.经过一个学期的工作与摸索,现总结如下: 一.课程活动情况: 根据学生自愿报名与教师选拔相结合的原则,电脑绘画班由四年级和五年级共27名 ...

最新文章

  1. 编程方法学15:指针要点回顾
  2. 交换机老化测试和性能测试方法收集
  3. 华为麒麟1020鸿蒙系统,华为P50pro最新确认:麒麟1020+立体全面屏+鸿蒙系统,这才是华为...
  4. linux 安装系统 逻辑卷,Linux逻辑卷工具lvm的使用教程
  5. 第7课 阿布拉卡达布拉《小学生C++趣味编程》
  6. 2019蓝桥杯C++B组 年号字串;完全二叉树的权值
  7. flex invalidation 机制
  8. MUI框架-01-介绍-准备-创建项目
  9. 逐点比较法直线插补MATLAB
  10. python程序输入两个整数、实现加减乘除_加减乘除
  11. 调研 微信小程序客服功能
  12. Latex——论文翻译
  13. 新版edge找不到internet选项
  14. 看风云变幻,自云淡风轻
  15. SAP PP模块工作中心主数据维护
  16. 百度云不限速详细教程
  17. STM32 Combined PWM的用法
  18. Winedt/CTeX/LaTeX编辑器显示行号
  19. 6-1 求实数和的函数
  20. 路遥《人生》中经典语录

热门文章

  1. 吴恩达等AI大佬发出 2021新年寄语
  2. CPU如何区分读出的代码是指令还是数据
  3. 基于JAVA校园外卖系统Web端计算机毕业设计源码+系统+数据库+lw文档+部署
  4. 归档--网络规划师的论文写作心得-指南
  5. PC端微信浏览器模拟器
  6. 普通地图的六大要素_普通地图的基本内容是什么?
  7. vue中常用的数组方法
  8. 中国人民大学杨东:涉金融服务数据分析行业的价值与善治
  9. 使用Docker部署GitLab、Nexus、Registry私服
  10. 电脑防盗新措施:能“杀死”电脑的USB线缆