Git入门篇一
版本控制工具简介
版本控制工具简介
-
为了要实现版本控制所以才有了一系的版本控制工具。
-
集中式版本控制工具:
CVS,SVN,VSS…… -
分布式版本控制工具:
Git,Mercurial,Bazaar,Darcs……
版本控制工具带来了什么?有什么用?
- 协同修改
多人并行不悖的修改服务器端的同一个文件。 - 数据备份
不仅保存目录和文件的当前状态,还能够保存每一个提交过的历史状态。 - 版本管理
保存每一个版本的文件信息的时候要做到不保存重复数据,以节约存储空
间,提高运行效率。这方面SVN 采用的是增量式管理的方式,而Git 采取了文
件系统快照的方式(速度非常快)。 - 权限控制
对团队中参与开发的人员进行权限控制,还可以对团队外开发者贡献的代码进行审核——Git 独有。 - 历史记录
查看修改人、修改时间、修改内容、日志信息,将本地文件恢复到某一个历史状态。 - 分支管理
允许开发团队在工作过程中多条生产线同时推进任务,进一步提高效率。
Git简介
Git来源
首先Git是全面兼容Linux命令的,因为Git和Linux是同一个作者(Linus)作者简介,在没有Git的初期Linux的内核是全球很多开发者贡献代码所继承的。(Linux是开源的)。所以就带来一个问题,因为要Linux的作者需要手动合并全球那么多的开发者提供的代码。后续BitMover公司出于人道主义授权Linux可以使用他们公司的BitKeeper工具。但是必须遵守不可以破解此软件的协议。再后来因为Linux社区是面向全球的,没有有力的约束,有人试图破解之后。被BitMover发现,所以此软件不在提供给Linux使用。最后这位大佬自己使用C语言开发了Git,所以Git天生就是分布式的。
Git和SVN的区别
- Git使每台电脑都拥有一个自己的版本库,可以在本地做版本管理。不需要联网,SVN 断开网络或者断开VPN就无法commit代码,但是Git 可以先commit到本地仓库。虽然使用SVN,没有网络或者断开VPN时,当然也可以继续在本地开发,但是无法commit代码,因为SVN 每次commit都必须联网,长时间不commit代码会丢失大量开发进程的历史纪录。有个比喻是:不能commit就像用word写文档不能save一样危险。而且有网络的情况下每一次commit都会花上数秒甚至更长时间。但用 Git 的话,因为是在本地仓库commit所以几乎不需要时间,而且commit一定要频繁,不然无法记录你的改动
- 速度快。Git的速度远超大部分版本管理系统,Git采用文件快照的方式每次操作之后都会生成一个索引值。当前指针就指向这个最新的索引值。通过移动指针指向不同的索引值就可以实现版本回退,前进功能(前提是使用Git做过commit操作,否则Git不会记录索引值)而SVN是采用文件增量的方式,当有文件发生变化就会记录不同的这块代码,回退前进都需要操作文件合并代码。
- 强大的分支管理功能。Git是通过索引值,指针来进行管理分支。比如下图:
- 98ca9,34ac2,f30ab 都是提交后生成的索引值。而当前的HEAD指针指向的是Master主线。Master又指向了f30ab。此时创建了一个testing的分支
- 通过切换分支,此时HEAD指针不在指向Master,而是指向testing分支。而testing分支,指向f30ab索引值的内容。然后再testing分支所做的任何修改比如有生成了123456索引值。此时只有testing支线会指向123456索引值的内容,只是对testing分支有效。对于Master来说master的指针还是指向之前的f30ab
- 而SVN对于分支管理其实就是copy一份master的代码。(效率显而易见)
-
活跃的开源社区,著名的Github
GitHub是基于Git版本控制工具的代码托管中心,可以理解为一个网盘,但是它的作用不单单只做代码托管。在这个社区中有许多许多优秀的开发者团队提供的许多优秀的开源代码可供学习。
5)去中心化集中式版本控制工具,总要有一个中心服务器,提供一个项目仓库,大家的代码的提交都是统一提交到这个中心服务器上的。 而分布式版本控制工具Git,可以有多个代码仓库,比如可以在本地。同时它可以方便的进行代码仓库合并。分布式的好处在于可以脱离中心服务器进行代码的版本控制,而不在于没有冲突。基于共享合并模式的版本控制都不可避免的会有冲突。
分布式版本管理的模式是:- 写代码。
- 提交到本地版本库。
- 从服务器拉回服务器的当前版本库,并解决服务器版本库与本地代码的冲突。
- 将远程库与本地代码合并结果提交到本地版本库。
- 将本地版本库推到服务器。
所以,分布式版本管理仅仅是增加了本地库这个概念,但是 svn 在与服务器同步之前无法提交代码的。
概念性的内容如果大家是刚开始接触学习Git会有些许晦涩难懂,不要放弃。按照我的Git技术点博客内容全部学习之后再返回头查看此处内容就会发现 全部通透通透通透通透
Git安装
Git官网:https://git-scm.com/downloads
选择64位下载