Git 是什么
Git is a free and open source distributed version control system designed to handle everything from small to very large projects with speed and efficiency.
Git 是一款免费的、开源的分布式版本控制系统,可以快速地、有效地管理任何项目。
版本控制系统是什么
最简单的版本控制就是保留软件(或文档)不同版本的数份 copy
,并且适当编号。由于这种版本控制依赖于人为的手动管理,随着时间的拉长将变得复杂而难以管理,所以版本控制系统应运而生。
简单地说,版本控制系统就是能够帮着你(或你们的团队)自动记录软件(或文档)的每次改动(包括新增、删除、修改),实现版本控制的自动化。
实际上,版本控制系统的首要工作是跟踪文件和目录在时间上的不同版本(并允许用户查看每个版本所发生的变化,对任意一个修改进行撤消),次要工作就是支持协作编辑和数据共享。
版本控制系统的基础概念
- 仓库:版本控制系统的核心是仓库,它是存放系统数据的中央位置。仓库通常以文件系统树(filesystem tree,文件和目录的分层结构)的形式存放信息。仓库的独特之处是随着文件不断地发生变化,它会记住文件的每一个版本。
- 工作副本:工作副本是仓库的特定版本数据在本地的副本,用户可以自由地对它进行操作。
集中式版本控制系统和分布式版本控制系统的区别
集中式的版本控制 (centralized version control):有一个远程的主仓库,仓库中存放了被版本控制的数据,用户在本地操作数据的浅拷贝副本。集中式版本控制系统以 SVN
为代表。
分布式的版本控制 (distributed version control):不需要一个远程的中央仓库,每一个用户在本地都有一份完整的版本历史,用户之间仍然需要协作,但不需要通过一台中央节点,可以直接进行交互。分布式版本控制系统以 Git
为代表。
两者的优缺点:
- 集中式版本控制系统最大的缺点就是必须联网才能工作,分布式版本控制系统则不是
- 集中式版本控制系统需要存放远程主仓库的中央服务器,如果出了问题,则所有人都没法干活了,而分布式版本控制系统由于每个用户都有一份完整的版本库,其安全性更高
- 分布式版本控制系统通常也有一台充当“中央服务器”的电脑,但这个服务器的作用仅仅是用来方便“交换”大家的修改,没有它大家也一样干活,只是交换修改不方便而已