[少数派]如何学习Git

用玩游戏的方式学习 Git

目录html

  1. 为何要学习 Git
  2. 怎么学习 Git
  3. Learn Git Branching
  4. 其余学习资源

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

从刚接触电脑时的打字练习软件 金山打字通,到程序猿写代码的利器 Vim 都有小游戏(金山打字通游戏VIM Adventures)来帮助咱们入门。当你的目标从掌握技能转变为打通游戏以后,学习自己也就再也不痛苦。在完成每一关的过程当中,都能增长咱们的技能熟练度和成就感。github


Figure 1. Lena

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

为何要学习 Git

Git 是一种分布式的版本管理系统,做用和网盘有点相似,可是功能性和灵活性都更强大。若是你是一个计算机专业的学生或从业者,Git 的重要性不言而喻;可是对普通人而言,Git 也有备份数据、保存历史记录等重要做用。vim

不怕断电、断网

数据无价,但不少时候咱们没法保证本身的电脑不出问题。有不少时候咱们会怀念上一个小时、前天或不久之前本身写的那些文字、画过的那些图1 ,如何无缺的保存数据是个永远的话题。将工做保存在云端也许会增长咱们心里的安全感,这也是不少人会用网盘进行备份的缘由。安全

Git 的「本地提交」较好地解决了这个问题,它的工做方式大概是这样:即便没网络,咱们也能够先工做,等到连上网络后再打包上传。每一个文档的名字都写有主要的工做(修改)内容,并且咱们还能清楚地看到文档之间地区别和改动,Git 还会自动把历史纪录保存下来。对于愈来愈多开始从事移动办公、远程工做的人来讲,因为网络环境不稳定,即便他不编程,也能从 Git 中受益。服务器

严肃写做的一个个节点

iOS 上的知名笔记工具 Drafts 会在你写做时,每隔一分钟帮你保存一份当前文档的「快照」,这样就能够方便地找回以前的某个写做版本了。你以为不满意而删除的一段文字,总能够在历史版本中找回,很贴心。保存写做的历史版本其实就是创建写做节点的过程。而这,也是 Git 所擅长的。网络


Figure 2. Drafts 的版本记录界面

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

Git 最本来的使用方式

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

GitHub 是经过 Git 进行版本控制的源代码托管服务4 ,咱们每一个人均可以把本身的代码托管在上面。同时,也能够看看别人写的代码,相互交流,极大方便了软件项目的多人协做开发,也推进了开源软件社区的壮大。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 的经历,证实不在于知识自己多艰深,只要学习曲线不陡峭,咱都能爬上去。

Human Resource Machine

Human Resource Machine

Learn Git Branching

欢迎光临

欢迎光临

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

关卡选择

关卡选择

关卡选择界面能够看到,有「主要」、「远程」两部分。每一部分的内容很少,覆盖了基本的用法。每一关都是一个模拟的小项目,经过上手操做很容易得到代入感。代码自己的用法在玩游戏的过程当中领会到,这种感受很棒,让人上瘾。

远程部分示范

远程部分示范

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

提交

提交

从 Git 到 GitHub

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

  1. git clone 下载代码到本地。
  2. 建立了本身的文件,或者进行了修改,能够用 git add . 把全部文件加入暂存区,等待创建节点。
  3. git commit -m "这一阶段工做描述" 尽可能细化你的节点,别作了不少工做才提交一次呀。
  4. git push 把以前创建的一系列节点推送到 GitHub 发布、保存。
  5. git pull 将 GitHub 的改动同步到本地,好比你在办公室电脑的改动同步到家里,或者多人协做项目中他人的改动同步到本地。

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

其余学习资源

除了以前文章中提到的 廖雪峰的 Git 教程 外,还有不少学习资料。好比:

Git 自己不难,但学会以后就是另外一方天地。尽快在项目或工做中实践吧!

  1. 借助 Git 对 Sketch 文件进行版本控制 https://sspai.com/post/40595
  2. sainho 在他的文章中 https://sspai.com/post/43061 提到了使用 Git 来推动本身所写书籍的进度。
  3. 维基百科 Git 词条 https://zh.wikipedia.org/wiki/Git
  4. 维基百科 Github 词条 https://zh.wikipedia.org/wiki/GitHub

转载声明:此篇文章版权归少数派全部 ©https://sspai.com/post/47694 / 责编: Minja

相关文章
相关标签/搜索