前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【Git 第1课】 什么是Git?

【Git 第1课】 什么是Git?

作者头像
Crossin先生
发布2018-04-16 14:55:11
6680
发布2018-04-16 14:55:11
举报

今天起,我会在微信推送文章里穿插一个新的系列:Git。和之前Python入门教程不同,这个系列需要有一点编程的经验。倒不是因为它很难,只是如果没有开发过稍大一点的项目,或者没有和别人合作开发过,你可能无法理解Git的用处,对其中涉及的内容也会感到不知所云。

这个系列不会天天更新,平时仍然会有一些基础的编程知识,以及编程学习相关的文章推送。大家各取所需。刚刚入门的朋友也不用着急,按部就班地保持自己的节奏就好,学习是件长久的事情,欲速则不达。

学习Git跟你使用的语言无关,只要你参与到程序开发中,就很有可能接触到Git,或者可以用Git帮助你进行开发。因此在这一点上,你不用再纠结于是该选择C++、Java、Python……当然,Git也有同类产品可供选择,但对于目前的你,有足够多的理由去学习Git,哪怕以后你不再使用它。

说了这么多,还没有进入今天的正题:Git到底是个什么东西?

Git是一个版本控制系统(Version Control System)。

那什么又是“版本控制系统”呢?

想象一下这样的场景:你再写一个程序,这个程序对你来说有一点“大”,不是一个晚上就能解决的。比如我们之前的打飞机小游戏。于是编写的过程中,你需要保存代码,下次接着写。另外,当你花了两个晚上,完成了最基本的功能后,第三天晚上,你又想尝试给你的游戏增加点新功能,比如你的飞机可以扔炸弹消灭屏幕上的所有敌人。那么你就得在之前的代码上做改动。

这时候,不幸的事情发生了!

你发现你改动了一些代码之后,程序无法正常运行了。你想算了,还是恢复到之前那样吧。但是代码被改动的地方比较琐碎,你发现把印象中所有的改动都改了回去,程序一样无法运行。于是你就陷入了抓狂。

即使你不是一个程序员,你也可能遭遇过类似的“悲剧”,比如误删了word文档中的一段话后手贱地点了保存,之后又想把那段找回来的时候才追悔莫及。人世间的事情大多如此吧……

于是,吃过苦头的人会给自己留条后路,再保存文件的时候选择“另存为 Save As”而不是直接在原文件上保存。于是你的文件夹中就出现了诸如:

report131106.doc

myslide-updated.ppt

loveletter_old001.txt

之类的文件。

其实这就是一种最简陋的版本控制系统。

本人当年上学的时候,第一次接触到版本控制这个概念时,就是用这种方式来解决的。我们从团队中挑选出一人(好吧,就是我)专门负责维护一台电脑上的一个文件夹。文件夹里分门别类地保存着项目的文档和代码的不同版本。

现在回想起来,这是怎样一种勤劳而又愚昧的做法。你需要去小心每个版本不要放错了位置,每天开发完要把代码发给专人整理,甚至在宿舍断网的时候要用u盘去copy最新的代码,再把最新的代码交给需要进行修改的人……

但其实早就不必如此。版本控制系统就是把你从这片苦海中拯救出来的工具。

通过版本控制系统,可以有效地追踪文件的变化。当代码出错的时候,可以很容易地恢复到之前的状态。对于多人协作开发的项目来说,版本控制系统更是必不可少。它保证每个人都能够获取最近更新的代码,每个人开发的代码可以更方便地增加到项目中,避免不同代码之前产生的冲突,减小沟通成本。

其实它做的事情本质还是在某个地方,记录下所有文件的所有版本,只不过比在电脑上建很多文件夹的方法更合理、更便捷、更稳定。让你可以把精力集中在开发代码本身,而不用关注其他琐碎的问题。

而Git就是时下最流行的版本控制系统。

关于Git有哪些具体的功能和特性,在以后的课程中会具体分析。另外,说Git就不能不说到GitHub。它又是什么?请看下节课。

#==== Crossin的编程教室 ====#

面向零基础初学者的编程课

每天5分钟,轻松学编程

回复 p 查看python课程

回复 g 查看pygame课程

回复 i 查看Git课程

回复 t 查看习题

回复 w 查看其他文章

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2013-11-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Crossin的编程教室 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档