【Git】1. Git概述
Git是一个免费的、开源的分布式版本控制系统,可以快速高效地处理从小型到大型的各种项目。
Git易于学习,占地面积小,性能极快。它具有廉价的本地库,方便的暂存区域和多个工作流分支等特性。
性能要优于Subversion、CVS、Perforce、ClearCase等版本控制工具。
附上官网
一、什么是版本控制
版本控制就是一种记录文件内容变化,以便将来查阅特定版本修订情况的系统。其实最重要的就是可以记录文件修改历史记录,从而让用户可以查看历史版本,方便版本切换。
那么为什么要用版本控制,其实是为了更好的团队协作。比如一个项目的代码文件,不止你一个人在写,那么你先提交之后,别人的那份没你的代码,当他再次提交,你的代码就
被覆盖掉了。
二、集中式和分布式
版本控制工具大概可以分为2类:集中式和分布式。
何为集中式?
比如SVN,会有一个单一的集中管理的服务器,保存了所有文件的修订版本。所有参与协同工作的人都通过客户端连接这台服务器,取出最新的文件,或者提交更新文件。
这种系统有个非常大的缺点,那就是中央服务器的单点故障,比如宕机了1小时,那么这一小时里谁都没法提交更新,也就没法协同工作。
何为分布式?
Git这种即为分布式版本控制工具,客户端首先从远程仓库把代码仓库完整的克隆下来到本地库,从而可以在本地进行版本的控制。就算远程服务器挂掉了也可以进行开发,
只是没办法把本地代码推送到远程仓库而已。另外,每个人clone到本地都是一个完整的项目,里面包含了历史记录等,更加安全,再也不怕单点故障问题。
三、git工作机制
git功能强大,但是工作机制并不复杂,毕竟Linus只花了2周时间就一个人开发完了git系统。你说啥?Linus是谁?
林大佬就是linux之父,所以git跟linux系统是一个爸爸。期初在长达10年的时间里,林大佬都是自己手动去合linux的代码的,后来提交代码的人越来越多,自己合实在
太累了。后来有个公司开发了一个版本控制的商业软件,出于人道主义就免费给linux社区使用,只要别破解就行。但是后来还是有个程序员破解了它,使用权被公司收回了,
无奈之下,林大佬只能用C语言开发了这个分布式版本控制系统了。
- 工作区:就是我们写代码的地方,具体指代码存放的磁盘目录的位置。
- 暂存区:为了让git能追踪到你在工作区写的代码,要把代码添加到暂存区。
- 本地库:把暂存区的代码提交到本地库,就会生成对应的历史版本了,这个历史版本是删不掉的。
四、git和代码托管中心
代码托管中心是基于网络服务器的远程代码仓库,一般称为远程库。比如,基于互联网的GitHub
、Gitee
,和基于局域网的GitLab
。
当代码提交到本地库后,就可以推送到远程库了,也就是用git push
命令。
五、安装
安装就不说了,打开官网,下载对应系统的最新版本,一路默认安装就行了。
下一章整理git常用命令。