什么是git
一句话印象:git最明显的特征就是分布式,并且它是免费开源的。git可以在不连接服务器端的情况下让用户在本地进行任意内容的版本控制,尽在必要的时候才建立与服务器端的情况下让用户在本地进行任意的内容版本控制,尽在必要的时候才建立与服务器的连接,这就使得源代码发布和通信极其方便。git的速度很快,这对于大型项目来说至关重要,并且其合并追踪能力非常出色。
当你进入这篇笔记的时候说明你已经被git的名气震慑到了,又或者你的工作要求你掌握git,亦或者是出于其他原因。总之不管怎样你都应该已经清楚git对于你的重要性,而我还是不得不在开篇夸一夸git。
git允许我们利用分支来开展工作:
在一个由多个开发者并行协作的项目中,开发者各自会有很多不同的开发路线。git的优势在于,它提供了一套针对开发链得重新整合工具,以便我们对齐进行合并、变基和捡取等操作。
工作流上的灵活性:
git非常灵活。不但单一开发者可以用它,敏姐团队也可以找到使用它工作的合适方法,甚至一个由众多开发者在不同的工作地点参与的大型国际项目也可以用其开发出一个易用的工作流。
适合奉献合作:
大多数开源项目所依靠的都是开发者的无私奉献。因此,让这种无私奉献的方式尽可能地简单化是一件非常重要的事。而在一个集中式的版本控制系统中通常是很难做到的,因为我们不可能让所有人都有权限去写版本库。但如果我们使用git,那么每个人都可以先克隆一个独立的工作版本库,然后再对其进行后续的改动。如果你经常使用一个神奇的网站GitHub你应该对此深有体会。
高性能:
git在处理拥有许多文件且历史悠久的项目时速度也依然是极快的。有多快呢?例如使用git将Linux内核源码的当前版本切换到6年前的旧版本时,在一台MacBook Air上所需的时间不到一分钟。要知道两个版本之间有着超过200000次的提交和40000个变更文件!
强大的抗故障和抗攻击能力:
由于项目历史被分散存储在多个分布式版本中,因此数据严重流失的可能性不大。再加上版本库中有着巧妙简单的数据结构,这确保了其中的数据即使在遥远的未来也仍然会被正确地解释。而且,它还使用了统一的加密校验,这使得攻击者难以对版本库进行篡改。
离线开发与多点开发:
分布式的体系结构可以使得离线开发或者边旅行边开发的方式变的异常轻松。而且该结构在多点开发模式下,我们既不需要设置中央服务器,也不需要固定的网络连接。
强大的开源社区:
除官方提供的详细文档外,您还可以在该社区找到无数相关的手册、论坛、维基百科等。此外,还有各种工具生态系统、托管平台、出版物、服务以及针对各个开发环境的插件,整个社区都在茁壮成长。
可拓展性:
git为用户提供了许多使用命令,其中包括了能使我们更便于直接访问其远程版本库的命令。这可以让git变得非常灵活,这种灵活性将允许其各种独立应用提供比默认git版本更为强大的功能。
在Linux上安装Git
首先,你可以试着输入git,看看系统有没有安装Git:
$ git
The program 'git' is currently not installed. You can install it by typing:
sudo apt-get install git
像上面的命令,有很多Linux会友好地告诉你Git没有安装,还会告诉你如何安装Git。
如果你碰巧用Debian或Ubuntu Linux,通过一条
sudo apt-get install git
就可以直接完成Git的安装,非常简单。