【Git】什么是Git?
1、什么是Git?
Git 是一种分布式版本控制系统
,是为了更好地管理Linux内核开发而创立的。
Git可以在任何时间点,把文档的状态作为更新记录保存起来。因此可以把编辑过的文档复原到以前的状态,也可以显示编辑前后的内容差异
。而且,编辑旧文件后,试图覆盖较新的文件的时候(即上传文件到服务器时),系统会发出警告,因此可以避免在无意中覆盖了他人的编辑内容
。它可以不受网络连接的限制
,加上其它众多优点,目前已经成为程序开发人员做项目版本管理时的首选,非开发人员也可以用 Git 来做自己的文档版本管理工具。
Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。
Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。
Git 与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本库的方式,不必服务器端软件支持。
2、版本控制系统分类
-
集中式版本控制工具
集中式版本控制工具,版本库是集中存放在中央服务器的,团队里每个人工作时从中央服务器下载代码,是必须联网才能工作,局域网或互联网。个人修改后然后提交到中央版本库。 举例:SVN和CVS
-
分布式版本控制工具
分布式版本控制系统没有“中央服务器”,每个人的电脑上都是一个完整的版本库,这样工作的时候,无需联网了,因为版本库就在你自己的电脑上。多人协作只需要各自的修改推送给对方,就能互相看到对方的 修改了。举例:Git
3、Git与SVN 的区别
-
1、Git 是分布式的,SVN 不是:这是 Git 和其它非分布式的版本控制系统,例如 SVN,CVS 等,最核心的区别。
-
2、Git 把内容按元数据方式存储,而 SVN 是按文件:所有的资源控制系统都是把文件的元信息隐藏在一个类似 .svn、.cvs 等的文件夹里。
-
3、Git 分支和 SVN 的分支不同:分支在 SVN 中一点都不特别,其实它就是版本库中的另外一个目录。
-
4、Git 没有一个全局的版本号,而 SVN 有:目前为止这是跟 SVN 相比 Git 缺少的最大的一个特征。
-
5、Git 的内容完整性要优于 SVN:Git 的内容存储使用的是 SHA-1 哈希算法。这能确保代码内容的完整性,确保在遇到磁盘故障和网络问题时降低对版本库的破坏。
SVN是集中式版本控制系统,版本库是集中放在中央服务器的,工作时首先要从中央服务器得到最新的版本,完成后需要再从本地推送到中央服务器。集中式版本控制系统是必须联网才能工作。
Git是分布式版本控制系统,那么它没有中央服务器,每个人的电脑就是一个完整的版本库,这样,工作的时候就不需要联网。
4、Git的优点
-
适合分布式开发,强调个体。
-
公共服务器压力和数据量都不会太大。
-
速度快、灵活。
-
任意两个开发者之间可以很容易的解决冲突。
-
离线工作。
5、Git工作流程
在Git中主要有以下四个区:
-
Workspace:工作区
-
Index / Stage:暂存区
-
Repository:仓库区(或本地仓库)
-
Remote:远程仓库
命令如下:
-
1.
clone
(克隆): 从远程仓库中克隆代码到本地仓库 -
2.
checkout
(检出):从本地仓库中检出一个仓库分支然后进行修订 -
3.
add
(添加): 在提交前先将代码提交到暂存区 -
4.
commit
(提交): 提交到本地仓库。本地仓库中保存修改的各个历史版本 -
5.
fetch
(抓取) : 从远程库,抓取到本地仓库,不进行任何的合并动作,一般操作比较少。 -
6.
pull
(拉取) : 从远程库拉到本地库,自动进行合并(merge),然后放到到工作区,相当于 fetch+merge -
7.
push
(推送) : 修改完成后,需要和团队成员共享代码时,将代码推送到远程仓库