作者主页(文火冰糖的硅基工坊):文火冰糖(王文兵)的博客_文火冰糖的硅基工坊_CSDN博客
本文网址:https://blog.csdn.net/HiWangWenBing/article/details/122261300
目录
第1章 什么是Git
1.1 git简介
Git(读音为/gɪt/)是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。也是Linus Torvalds为了帮助管理Linux内核开发而开发的一个开放源码的版本控制软件。是一种基于命令行的远程版本控制系统。
Git 是用于 Linux内核开发的分布式版本控制工具。与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本库的方式,不必服务器端软件支持,使源代码的发布和交流极其方便,这对于诸如 Linux kernel 这样的大项目来说自然很重要。
Git 最为出色的是它的合并跟踪(merge tracing)能力。
实际上,内核开发团队决定开始开发和使用 Git 来作为内核开发的版本控制系统的时候,世界开源社群的反对声音不少,最大的理由是 Git 太艰涩难懂,从 Git 的内部工作机制来说,的确是这样。但是随着开发的深入,Git 的正常使用都由一些友好的脚本命令来执行,使 Git 变得非常好用,即使是用来管理我们自己的开发项目,Git 都是一个友好,有力的工具。现在,越来越多的著名项目采用 Git 来管理项目开发。
目前GIT已经可以在windows下使用,主要方法有二:msysgit和Cygwin。Cygwin和Linux使用方法类似,Windows版本的GIT提供了友好的GUI(图形界面)。
1.2 git,svn,cvs版本控制工具比较
时下最火的三个版本控制工具:git,svn,cvs。
(1)并发修改:多个开发人员同时对同一个文件进行修改。
git,svn,cvs都支持。原来曾有个rcs的版本控制系统就不支持并发修改, 如果有人正在修改某一个文件,那么这个文件就会被锁定,直到修改完毕,下一个开发人员才能对该文件进行修改,而cvs是从rcs发展过来的,并做出了改进。
(2)并发提交
版本控制中的版本记录是通过开发人员的提交操作来触发的,也就是说,要进行提交操作,才会记录版本号。
如果修改了多个文件后提交,cvs会一个一个的提交,每个文件被修改后,都会记录一个不同的版本号。而svn和git可以同时提交多个文件的修改,并且这多个文件记录的是同一个版本号。
cvs每个文件都会记录版本号,其占用的磁盘空间会比较大,但是如果出现bug的时候,cvs定位bug的时候只需要定位到某个版本号,就可以直接定位到某个文件,其找bug的速度是非常快的。svn和git就得从批量提交的多个文件中一个一个查找。
(3)历史轨迹
如果一个文件的名称被修改了,cvs就无法追踪到修改文件名之前的历史版本。而svn和git即使文件名被修改了,他们依然可以追踪到这个文件的所有历史版本。
(4)分布式:是否需要一台专门的服务器来运行这个版本控制。
cvs和svn是一个集中式的版本控制器,他们需要一台专门的版本控制服务器。
而git是分布式的,他不要一台专门的服务器来运行这个版本控制。每个开发人员的电脑组成的网络就可以运行git,特别适合源代码的发布和交流。
因此git是开源项目的首选!
第2章 基于git版本控制工具的代码托管平台
2.1 什么是代码托管平台
git只是一个版本控制的软件工具,还需要硬件服务器作为支撑和提供服务。
代码托管平台就是这样的服务器,通常有专门的机构提供维护与服务。
主流的基于git的代码托管平台有:
- Github:在线代码托管的仓库,向互联网用户开放,企业版要收钱。
- Gitlab: 类似 github,一般用于在企业内搭建私有的代码托管平台,要自己搭环境。
- Gitlab-ee是企业版,收费的。
- Gitee:国内版github,中文名:码云,不用自己搭建环境,可以建立自己的私有仓库。
- Git-ce 社区版本的gitee。
2.2 github与gitee的比较
gitee的优势:
(1)gitee免费的私有代码托管
gitee一个非常重要的功能,就是能够支持私有库的托管,其他用户不可见,且这个功能是免费的 。
github则不可以,该功能对github是收费的。
(2)本地化代码托管
gitee是国内的代码托管系统,不存在国外网站不可访问的风险。
(3)gitee支持微信注册与登录
作者主页(文火冰糖的硅基工坊):文火冰糖(王文兵)的博客_文火冰糖的硅基工坊_CSDN博客
本文网址:https://blog.csdn.net/HiWangWenBing/article/details/122261300