【Day02】Git 版本控制 - 浅谈版本控制

只要有写过程序,相信一定都有听过 GitHub 这个网站,不但可以在上面管理、分享自己的 code,工程师还可以用 GitHub 当作自己面试的履历。

如此强大的 GitHub 究竟是什麽呢?
其实 GitHub 是一个「透过 Git 进行版本控制」的「软件原始码代管服务平台」,简单来说,就是一个拥有各种开源软件的地方,可以让任何人存取、使用、修改,而原作者可以使用 Git 来进行控管,达成「共同创作」。

大概有一点了解後,我们先来谈谈什麽是「版本控制」?

其实版本控制不仅仅应用於程序设计上,像是美术设计、撰写文章也常常会听到有人说 ver1、ver2 等等,所谓的版本控制其实就是去纪录一个档案所修改的部分,当你未来想回到某一个版本时就可以简单呼叫。

而在程序中的版本控制就是去追踪程序码的修改,并保留每个版本的档案,如下图所示。

而版本控制的发展大致可以分成本地端、集中化、分散式这三种,在接下来的文章中我们会简单介绍这三种的差异。

本地端版本控制

最常见的本地端版本控制使用的方式是直接将档案复制到另一个资料夹,这个方法很简单、直觉,但却可能会因为人为的失误造成复写、删除。
为了解决此问题,在当时就有一个叫 RCS 的本地端版本控制供使用。

RCS 的工作原理是在硬碟上保存一堆特殊格式的补丁集合(patch set,即档案从一个版本变更到另一个版本所需资讯);通过套用任意的补丁,便可以重新产生出每个版本的档案内容。

集中化版本控制系统

但这个办法却无法与其他开发者共同合作开发专案,为了解决这个问题,集中化的版本控制系统(如:CVS、Subversion 和 Perforce)诞生了。
这个系统有一个服务器来管理所有版本的档案,而许多用户端会连到这台服务器取出档案来使用。
相较於本地端,集中化的方式可以让开发者彼此间知道对方的工作内容,轻松达成共同合作,但集中化跟本地端都有一个致命的缺点,就是当服务器损坏时,档案就会跟着遗失。

分散式版本控制系统

於是分散式版本控制系统(Distributed Version Control Systems,简称 DVCSs)就出现了。 在此系统(如 Git、Mercurial、Bazaar 和 Darcs)中,用户端不但可以取出最新的档案资讯,还可以将整个档案夹备份,假如有任何一个服务器损坏,就可以采用用户端的资料来进行还原。

相信大家对版本控制有一定的了解了,明天我们就来介绍什麽是 Git 吧!

Reference


<<:  Day 05 LINE bot上的Webhooks

>>:  React.js 职场实战!图片 Lazy Loading

在我的 iMac 上制作双系统的随身碟

用同一个硬碟外接盒,分别在不同的硬碟安装上 Windows 10 与 Clear Linux,在使用...

D5(9/5)-大同(2371)

注:发文日和截图的日期不一定是同一天,所以价格计算上和当日不同,是很正常的。 买进 大同(2371)...

终、球不落地,永不放弃

闻くは一瞬の耻、闻かぬは一生の耻。 俗话说:不耻下问是一时之耻,耻而不问是一生之耻。 — 井口佑未...

Day03-搞懂传址、传值? 电脑如何储存资料?

前言 昨日我们学习了资料的型态,今天我们要来了解变数的参考。 Pass by Value ? Str...

[Day21] 第二十一章 - 使用Ajax来做登入API界接

前言 昨天我们把登入页面套上了bootstrap 我们这次把jqury补上去 接者透过ajax做登入...