Git 分布式版本控制系统学习之一
Posted 码海小虾米_
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Git 分布式版本控制系统学习之一相关的知识,希望对你有一定的参考价值。
分布式版本控制系统
一、Git、GitHub 和 Gitlab 的区别
- Git 是一个免费的开源 分布式版本控制系统,旨在快速高效地处理从小到大的所有项目。
Git易于学习, 占用空间小,性能快如闪电。是Linus Torvalds为了帮助管理Linux内核开发而开发的一个开放源码的版本控制软件。
官方网站:https://git-scm.com/
- GitHub 是在线的基于Git的代码托管服务。Github 是2008年由Ruby on Rails编写而成。
GitHub同时提供付费账户和免费账户。这两种账户都可以创建公开的代码仓库, 只有付费账户可以创建私有代码仓库。而Gitlab解决了这个问题,可以在上面创建免费的私人repo。
二、Git 和 SVN 的区别
- Git 不仅仅是个版本控制系统,它也是个内容管理系统(CMS),工作管理系统等。
Git 和 SVN 的区别如下:(记住第一点)
- Git 是分布式的,SVN 不是,这是Git 和其他非分布式的版本控制系统,例如SVN,CVS等,最核心的区别。
- Git 把内容按元数据方式存储,而SVN是按文件,所有的资源控制系统都是把文件的元信息隐藏在一个类似.svn或.cvs等的文件夹里。
- Git分支和SVN的分支不同,分支在SVN中一点都不特别,就是版本库中的另外一个目录。
- Git没有一个全局的版本号,而SVN有,目前为止这是跟SVN相比Git缺少的最大一个特征。
- Git的内容完整性要优于SVN,GIT的内容存储使用的是SHA-1哈希算法,这能确保代码内容的完整性,确保在遇到磁盘故障和网络问题时降低对版本库的破坏。
三、版本控制
什么是版本控制?版本迭代,新的版本!版本管理器
版本控制(Revision control )是一种在开发的过程中用于管理我们对文件、目录或工程等内容的修改历史,方便查看更改历史记录,备份以便恢复以前的版本的软件工程技术。
- 实现跨区域多人协同开发
- 追踪和记载一个或者多个文件的历史记录
- 组织和保护你的源代码和文档
- 统计工作量
- 并行开发、提高开发效率
- 根据记录整个软件的开发过程
- 减轻开发人员的负担,节省时间,同时降低认为错误
简单来说就是用于管理多人协同开发啊项目的技术。
没有进行版本控制或者版本控制本身缺乏正确的流程管理,在软件开发过程中将会引入很多问题,如软件代码的一致性、软件内容的冗余、软件过程的事物性、软件开发过程中的并发性、软件开源代码的安全性,以及软件的整合等问题。
版本控制的分类:
-
本地版本控制
记录文件每次的更新,可以对每个版本做一个快照,或是记录补丁文件,适合个人用,如RCS
-
集中版本控制:
所有版本数据存在服务器上,协同开发者从服务器上同步更新或上传自己的修改。
所有的版本数据都存在服务器.上,用户的本地只有自己以前所同步的版本,如果不连网的话,用户就看不到历史版本,也无法切换版本验证问题,或在不同分支工作。而且,所有数据都保存在单- -的服务器 上,有很大的风险这个服务器会损坏,这样就会丢失所有的数据,当然可以定期备份。代表产品: SVN、CVS、VSS
-
分布式版本控制:
所有版本信息仓库全部同步到本地的每个用户,这样就可以在本地查看所有版本历史,可以离线在本地提交,只需在连网时push到相应的服务器或其他用户那里。由于每个用户那里保存的都是所有的版本数据,只要有一-个用户的设备没有问题就可以恢复所有的数据,但这增加了本地存储空间的占用。
四、部署 Git 服务
打开官网:https://git-scm.com/,下载git对应操作系统的版本。
官网下载太慢,可以使用淘宝镜像下载:http://npm.taobao.org/mirrors/git-for-windows/
下载安装包
安装Git(没有特殊说明就是选择默认)
① 选择适合的路径
② 选择默认的文本编辑器
③ 安装可以在开始菜单中看到已安装的git
Git Bash : Unix与Linux风格的命令行,使用最多,推荐最多
Git CMD : Windows风格的命令行
Git GUI :图形界面的Git ,不建议初学者使用,尽量先熟悉常用命令
④ 打开Git Bash
⑤ 查看配置文件
⑥查看git 配置文件
⑦ 添加用户和邮箱
当你安装Git后首先要做的事情是设置你的用户名称和e-mail地址。这是非常重要的,因为每次Git提交都会使用该信息。它被永远
的嵌入到了你的提交中:
可以看到在c盘生成用户配置文件
打开查看内容
五、Git 的基本理论
以上是关于Git 分布式版本控制系统学习之一的主要内容,如果未能解决你的问题,请参考以下文章