Git的人门
一、现有三种版本控制器
1、CVS
2、SVN 客户端/服务器
3、Git 客户端/代码托管网站(例如:github)
注:github/码云/阿里云Code源码管理类似的代码托管网站
注:GitLab与GitHub有一定的区别
GitLab和GitHub一样属于第三方基于Git开发的作品,免费且开源。与Github类似,可以注册用户,任意提交你的代码,添加SSHKey等等。
不同的是,GitLab是可以部署到自己的服务器上,数据库等一切信息都掌握在自己手上,适合团队内部协作开发,
你总不可能把团队内部的智慧总放在别人的服务器上吧?简单来说可把GitLab看作个人版的GitHub。
二、CVS是什么???
CVS是一个C/S系统,CVS版本控制系统是一种GNU软件包,主要用于在多人开发环境下的源码的维护。但是由于之前CVS编码的问题,大多数软件开发公司都使用SVN替代了CVS。
三、SVN是什么???
SVN是subversion的缩写,是一个开放源代码的版本控制系统,通过采用分支管理系统的高效管理,简而言之就是用于多个人共同开发同一个项目,实现共享资源,实现最终集中式的管理
1、SVN的优点
1、存储
SVN服务器既具有CSV所具有的数据存储优点,像是信息资源存储后会形成资源树结构,便于存储的同时,数据一般不会丢失,同时又拥有自己的特殊,SVN是通过关系数据库及二进制的存储方式,同时解决了既往不能同时读写同一文件等问题,同时增添了自己特有的“零或一”原则。
2、速度
与人们初始的CVS相比,SVN在速度运行方面有很大提升。因为SVN服务器只支持少量的信息、资源传输,与其他系统相比,更支持的是离线模式,因此避免了网络拥挤现象的出现。
3、安全性
SVN实现了系统和控制两方面的结合,一方面可以将系统整体的安全功能有效地分布在分支系统中,进而保证分支系统能正常运行,从而使各分支系统能够互补,最终在系统整体性的安全性得以保障,通过均衡原则实现最终追求安全的目的
四、Git是什么???
Git是一个开源的[分布式][版本控制系统],用于敏捷高效地处理任何或小或大的项目
Git是目前世界上最先进的分布式版本控制系统(没有之一)。
1、Git的特点
简单来说就是:高端大气上档次
项目越大越复杂,协同开发者越多,越能体现出 Git 的高性能和高可用性!
2、Git与SVN区别
分布式
GIT是分布式的,SVN不是:这是GIT和其它非分布式的版本控制系统,例如SVN,CVS等,最核心的区别。
git仓库的任何一个拷贝都可以独立作为一个服务器来使用
在Git中文件有四种状态:
未跟踪(untrack):表示文件为新增加的
已修改(modified):表示修改了文件,但还没保存到git仓库中。
已暂存(staged):表示对一个已修改文件的当前版本做了标记,使之包含在下次提交的快照中
已提交(committed):表示文件已保存在git仓库中。
其它
GIT没有一个全局的版本号,而SVN有:目前为止这是跟SVN相比GIT缺少的最大的一个特征。
GIT的内容完整性要优于SVN:GIT的内容存储使用的是SHA-1哈希算法。这能确保代码内容的完整性,确保在遇到磁盘故障和网络问题时降低对版本库的破坏
直接记录快照,而非差异
GIT把内容按元数据方式存储,而SVN是按文件:所有的资源控制系统都是把文件的元信息隐藏在一个类似.svn,.cvs等的文件夹里。
直接记录快照,而非差异
直接记录快照,而非差异
GIT分支和SVN的分支不同,分支在SVN中一点不特别,就是版本库中的另外的一个目录。
3、下载Git
4、下载完成之后进行安装
如果安装成功,右键就会出现下面的两个按钮
5、Git的基本操作
1、“Git bash here”打开命令窗口
2、查看git的配置列表
git config --list
如果没有的话,就要注册一个密码和账号
git config --global user.name "username"
git config --global user.email "email"
git config --global user.password "password"