最近在上软件工程工具的课,老师留了一个课下作业,内容是:
1.版本控制的作用和意义
2.选择一个版本控制工具及说明:
3.如何使用?使用的意义?
由于之前对于Git有所接触,就做了简单的文档整理并且就发到博客上,仅供参考记录。
一、版本控制的作用和意义
“代码”作为软件研发的核心产物,在整个开发周期都在递增,不断合入新需求以及解决bug的新patch,这就需要有一款系统,能够存储、追踪文件的修改历史,记录多个版本的开发和维护。于是,版本控制系统(Version Control Systems)应运而生。
版本控制工具的作用:帮助我们记录和跟踪项目中各文件内容的修改变化。
记录文件修改的手工做法:复制文件以备份,在备份的文件名中添加上日期和时间。
需要版本控制工具的原因:为了提高效率,我们希望这类操作是自动进行的,这是我们需要版本控制工具的原因。
版本控制工具(Version Control System)的分为3类:
1、直接访问式版本控制系统;
2、集中式版本控制工具,比如CVS、SVN;
3、分布式版本控制工具,比如git
二、选择一个版本控制工具,说明:
先说一下分布式版本控制系统:
分布式版本控制系统的特点是每个客户端都是代码仓库的完整镜像,包括项目文件的变更历史。所有数据分布的存储在每个客户端,不存在中央服务器。可能有人会问,我们公司使用Git分布式存储工具,也有“中央服务器”啊?其实,这个所谓的“中央服务器”仅仅是用来方便管理多人协作,任何一台客户端都可以胜任它的工作,它和所有客户端没有本质区别。
分布式版本控制系统的优点:
1.版本库本地化,版本库的完整克隆,包括标签、分支、版本记录等。
2.支持离线提交,适合跨地域协同开发。
3.分支切换快速高效,创建和销毁分支廉价。
分布式版本控制系统的缺点:
1.学习成本高,不容易上手。
2.只能针对整个仓库创建分支,无法根据目录建立层次性的分支。
这里我选择分布式版本控制工具git,看一下Git的优点:
1.Git有能力高效管理类似Linux内核一样的超大规模项目;
2.Git实现了离线开发、代码审核特性,解决了跨地域协同开发中代码质量和编码协同的问题;
3.分支管理功能强大,便于查询和追溯分支间的提交历史;
Git基于DAG(有向非环图)的设计比SVN的线性提交提供更好的合并追踪,避免不必要的冲突,提高工作效率
5.Git通过哈希加密保证数据的完整性,防止恶意篡改;
6.代码分布存储,异地容灾,保证数据安全;
7.Git支持团队成员自建本地版本库和分支,只有客户发出合并请求,开发人员才能提交代码,客户可以对提交说明、代码规范等方面逐一审核。
三、如何使用?使用的意义?
在使用Git的时候,我们可以先去注册一个码云:码云官网
这是我的码云
下面是我针对结合码云远程仓库与Git指令的部分笔记
(整理尚不清晰,会抽时间重新整理,如有错误,敬请告知):
线上git仓库选择克隆/下载===》SSH认证选项
复制ssh认证协议的url:giturl
git clone giturl ===>下载线上仓库到本地,然后本地会生成一个文件夹
右击文件夹,选择 git bash 出现一个新的bash命令行
git status //查看更改
git add . //文件路径名字
git commit -m "提交自定义注释"
git push origin head:master
git clone giturl //从master分支更新内容
点击下载下来的文件夹,右击-> git bash
git checkout origin/yzh //切换远程分支到yzh
git status //检查有没有变动
git add . //文件路径 添加更新的文件,这里注意add与.直接有空格
git commit -m "添加更新原因"
git push origin head:yzh 执行更新到远程yzh分支
git pull 从远程库更新到本地
远程仓库更新到自己的分支 (git pull origin yzh)
git push 从本地更新到远程仓库
关于具体如何使用,建议可以参考这个教程:廖雪峰的网站Git教程
注意:(近期Git更新后,最新版本的Git指令比较严谨,一些指令可能不能像原来那样宽泛的使用)
Git是目前比较流行的版本控制软件,能更加切合我们对于项目版本的管理,使项目业务更加合理、人性化。