一篇文章带你了解热门版本控制系统——Git

一篇文章带你了解热门版本控制系统——Git这篇文章会介绍到关于版本控制的相关知识以及版本控制神器Git
我们可能在生活中经常会使用GitHub网页去查询一些开源的资源或者项目 , GitHub就是基于Git而产生的平台
接下来让我们来细细道来~

Git是一门非常简单的技术,但在实际开发中占有很重要的地位,请务必了解掌握
版本控制在介绍Git之前我们先来介绍一个名词:版本控制
版本控制概念我们在标题已经提到了Git的最大作用:版本控制
那么我们先来了解一下版本控制:
  • 版本控制是指对软件开发过程中各种程序代码、配置文件及说明文档等文件变更的管理,是软件配置管理的核心思想之一 。
通俗来说的话:
  • 版本控制用于在开发的过程中管理我们的文件
  • 我们可以查看文件、目录或工程等内容的修改历史,方便查看更改历史记录,备份以便恢复以前的版本 。
例如我们所使用的产品有Version,版本常分为1.0,2.0...版本区分
但是我们所淘汰掉的版本是不会被直接抛弃删除,而是被像Git这样的软件所保存传送到相关仓库中
又或者我们的软件开发之后,会由许多人进行开发修改
但是并非所有人的开发版本都会被保留使用,那些被淘汰的版本就会被像Git这样的软件所保存传送到相关仓库中
版本控制的优势:
  • 实现跨区域多人协同开发
  • 追踪和记载一个或者多个文件的历史记录
  • 组织和保护你的源代码和文档
  • 统计工作量
  • 并行开发、提高开发效率
  • 跟踪记录整个软件的开发过程
  • 减轻开发人员的负担 , 节省时间,同时降低人为错误
总而言之版本控制在我们的实际开发中占有很重要的地位!
多人开发就必须要使用版本控制,否则无法控制项目的开发状态
版本控制工具我们目前常用的控制工具大致分为五种:
  • Git
  • SVN(Subversion)
  • CVS(Concurrent Versions System)
  • VSS(Micorosoft Visual SourceSafe)
  • TFS(Team Foundation Server)
其中SVN属于版本控制的老大哥,但目前大部分公司已经不再使用
我们目前学的Git就属于版本控制的主流工具,基本上大部分公司都在使用Git工具
版本控制分类我们通常将版本控制分为三类:
  1. 本地版本控制
  • 概念:
本地版本控制通常用于个人开发,我们将我们自己的项目进行版本控制 , 在迭代后将原版本的项目原件保留下来
记录文件每次的更新,可以对每个版本做一个快照,或是记录补丁文件 , 如RCS 。
  • 优缺点:
只能用于个人开发,多人开发在多台计算机上,本地版本控制无法满足
  1. **集中版本控制 **
  • 概念:
集中版本控制通常用于团队开发,将一个电脑作为主机,将所有需要保存的项目资料都存放在该电脑上 , 实现集中控制
协同开发者从服务器上同步更新或上传自己的修改,如SVN
  • 优缺点:
集中版本控制将所有资料保存在一台电脑上,相当于单机存储,保密性较高;但一旦计算机出现损坏,项目备份丢失 , 无法找回
  1. 分布式版本控制
  • 概念:
分布式版本控制通常用于团队开发,所有人都保存有项目的所有资料,实现分布式控制
  • 优缺点:
保密性差,所有人都携带项目源码,具有一定安全隐患;但同时所有人都保存有源码,一台电脑损坏并不影响项目的保存
Git和SVN的主要区别我们在前面提及到了集中版本控制和分布式版本控制,实际上它们就分别对应着SVN和Git的控制方式
因而我们给出相关总结:
  • 数据存放地址:SVN存放在一台计算机;Git存放在所有计算机
  • 项目开发方式:SVN需要联网获得主机上的项目,然后开发完后推送回原电脑;Git直接开发并比对研究即可
  • 优缺点:SVN安全性低但容易丢失;Git不易丢失但安全性差
Git环境配置首先我们来讲解Git的安装以及环境配置等信息
Linux常用指令在正式开始Git教学之前,我们来复习一些Linux相关指令:
# 表示注释cd : 改变目录 。cd . . : 回退到上一个目录,直接cd进入默认目录pwd : 显示当前所在的目录路径 。ls(ll) :都是列出当前目录中的所有文件,只不过ll(两个ll)列出的内容更为详细 。touch : 新建一个文件 如 touch index.js 就会在当前目录下新建一个index.js文件 。rm:删除一个文件, rm index.js 就会把index.js文件删除 。mkdir :新建一个目录,就是新建一个文件夹 。rm -r :删除一个文件夹, rm -r src 删除src目录mv : 移动文件, mv index.html src index.html 是我们要移动的文件, src 是目标文件夹,reset : 重新初始化终端/清屏 。clear : 清屏 。history : 查看命令历史 。help : 帮助 。exit : 退出 。

推荐阅读