为什么要使用版本控制?
版本控制工具应具备的那些功能?
-
协同修改
多人并行不悖的修改服务器上的同一文件。 -
数据备份
不仅保存目录和文件的当前状态,还能够保存每一个提交过的历史状态。 -
版本管理
在保存每一个版本的文件信息的时候要做到不保存重复数据,以节约存储空间,
提高运行效率。这方面SVN采用的是增量管理的方式,每次增量保存,如果需要这整改文件
就会把每次增量保存的和最开始的文件进行拼凑起来,呈现出来的就是最新的文件,
而Git采取了文件系统快照的方式。 - 版本控制
- 对团队中参与开发的人员进行权限控制。
- 对团队开发者贡献的代码进行审核—-Git独有。
- 历史记录
- 查看修改人、修改时间、修改内容、日志信息等 。
- 将本地文件恢复到某一个历史状态。
- 分支管理
允许开发团队在工作过程中多条生产线共识推进任务,进一步提高效率。
版本控制介绍?
- 版本控制
工程设计领域中使用版本控制管理工程蓝图的设计过程。在IT开发过程中也可以使用版本控制思想管理代码的迭代。 - 版本控制工具
- 集中式版本控制工具:
CVS、SVN、VSS… - 分布式版本控制工具:
Git、Mercurial、Bazaar、Darcs…Git简义
- 集中式版本控制工具:
- Linux系统版本控制历史
- 1991年
Linus本人手动合并其他代码贡献者提供的Linux代码; - 2002年
商业软件:BitKeeper
BitKeeper的东家BitMover公司出于人道主义,授权Linux社区免费使用这个版本控制系统。但是要求不能进行破解。 - 2005年
开发Samba的Andrew试图破解BitKeeper的协议,被BitMover公司发现,要收回Linux社区的免费使用权。
Linux社区无法像商业公司那样对开发者进行强有力的约束。
Linus自己用C语言开发了一个分布式版本控制系统:Git
主体程序开发完成只用了两周;
一个月以后Linux系统代码由Git管理 - 2008年
Github上线
- 1991年
Git 官网
Git 的优势
- 大部分操作在本地完成,不需要联网(集中式对比)
- 完整性保证
- 尽可能添加数据而不是删除或者修改数据
- 分之操作非常快捷流畅
- 与Linux命令全面兼容
Git 结构
- 工作区 写代码
- 暂存区
临时存储 - 本地库
历史版本
Git和代码托管中心
维护远程代码库
- 局域网环境下
- GitLab服务器
- 外网环境下
- GitHub
- 码云
本地代码库和远程代码托管中心协作
Git安装
Git命令行操作
- 本地库初始化(.git): git init
- config
- description
- HEAD
- hooks
- info
- objects
- refs
注意:.git目录中存放的是本地库香港的子目录和文件,不要删除,也不要胡乱修改。
- 设置签名
- 形式:
用户名:qmsggg37
Email地址: luohao37@xxx.com - 作用:区分不同开发人员的身份
- 辨析:这里设置的签名和登录远程库(代码托管中心)的账号、密码没有任何关系。
- 命令:
项目级别/项目仓库级别:仅在当前本地代码库级别生效
git config(默认是项目级别)
系统用户级别:登录当前操作系统的用户范围
git config –global
优先级:就近原则(项目级别优先于系统用户级别)
二者都没有可能不允许
- 形式:
- 查看工作区/暂存取状态
- 命令: git status