版本控制多适用于管理多人协同开发的项目技术,在我们平时开发过程中有很多协同问题,比如软件代码的一致性、软件内容的冗余、软件过程的事物性、软件开发过程中的并发性、软件源代码的安全性,以及软件的整合等问题,在我们的生活和笔记中用一个版本控制器会大大提高我们的效率
🔥常见版本控制工具
目前主流的版本控制器有如下:
● Git
● SVN(Subversion)
● CVS(Concurrent Versions System)
● VSS(Micorosoft Visual SourceSafe)
● TFS(Team Foundation Server)
● Visual Studio Online
还有很多很多版本控制产品:Perforce、Rational ClearCase、RCS、Serena Dimention、SVK、BitKeeper、Monotone、Bazaar、Mercurial、SourceGear Vault),现在影响力最大且使用最广泛的是Git与SVN
🔥版本控制分类
👌本地版本控制
记录下本地每次文件(或版本、补丁文件)的更新,适合个人使用,版本控制工具:RCS
👌集中版本控制
所有的版本数据都保存在服务器上,协同开发者从服务器上同步更新或上传自己的修改
版本控制工具:SVN、CVS、VSS
用户的本地只有自己以前所同步的版本,如果不连网的话,用户就看不到历史版本,也无法切换版本验证问题,或在不同分支工作。且所有数据都保存在单一的服务器上,有很大的风险这个服务器会损坏,这样就会丢失所有的数据,当然可以定期备份
👌分布式版本控制
所有版本信息仓库全部同步到本地的每个用户,用户可以在本地查看所有版本历史,可以离线在本地提交,只需在连网时push到相应的服务器或其他用户。由于每个用户那里保存的都是所有的版本数据,只要有一个用户的设备没有问题就可以恢复所有的数据,但这增加了本地存储空间的占用
它不会因为服务器损坏或者网络问题,造成不能工作的情况
🎈Git 与SVN 的区别
Git是分布式版本控制系统,没有中央服务器,每个人的电脑就是一个完整的版本库,工作的时候不需要联网了,协同的方法:如自己在电脑上更改文件A,其他人也在电脑上改了文件A,这时,你们两之间只需把各自的修改推送给对方,就可以互相看到对方的修改了。Git可以直接看到更新的代码和文件
Git是目前世界上最先进的分布式版本控制系统
SVN是集中式版本控制系统,版本库是集中放在中央服务器的,而工作时用的是自己的电脑,所以要从中央服务器得到最新的版本后再工作,完成工作后,需要把自己做完的活推送到中央服务器。集中式版本控制系统是必须联网才能工作,对网络带宽要求较高
Git下载与安装
🎁温馨提示: 一般在下载都很慢,可以在镜像网站中下载就舒服多了
淘宝镜像网站:http://npm.taobao.org/mirrors/git-for-windows/
到最下面下载最新版本就行
选择适合自己的位数
打开 git 官网 >> https://git-scm.com/
选择自己需要的版本
下载完成后,双击安装:无脑式下一步next 即可
下载完成后
在开始菜单中
Git Bash:Unix与Linux风格的命令行,使用最多,推荐最多
Git CMD:Windows风格的命令行
Git GUI:图形界面的Git
Git基本知识
🔥常用命令(Linux)
命令 | 作用 |
---|---|
cd | 改变目录 |
cd . . | 回退到上一个目录 |
pwd | 显示当前所在的目录路径 |
ls(ll) | 列出当前目录中的所有文件 |
touch | 新建一个文件 |
rm | 删除一个文件 |
mkdir: | 新建一个目录(文件夹) |
rm -r | 删除一个文件夹 |
rm -rf / | 切勿在Linux中尝试,会删除电脑中全部文件 |
mv | 移动文件, mv 文件名 目标文件夹,须保证文件和目标文件夹在同一目录下 |
reset | 重新初始化终端/清屏 |
clear | 清屏 |
history | 查看命令历史 |
help | 帮助 |
exit | 退出 |
# | 表示注释 |
查看配置
git config -l
查看不同级别的配置文件:
#查看系统config
git config --system --list
#查看当前用户(global)配置
git config --global --list
设置用户名与邮箱
必要的
设置一次就行了
git config --global user.name "名称"
git config --global user.email "邮箱"
🔥分支
分支就是从开发主线分离进行重大bug的修改,开发新功能,以免影响开发主线
查看本地分支
git branch
查看远程分支
git branch -r
创建本地分支
依旧在当前分支
git branch 分支名
切换分支
git checkout 分支名
创建并切换分支
git checkout -b 分支名
合并分支
git merge 分支名称
删除分支
不能删除当前分支,应切换到其他分支再删除需删除的分支
# 删除,可能会删除失败
git branch -d 分支名
# 强制删除分支
git branch -D 分支名
🎁分支冲突:
如果同一个文件在合并分支时都被修改了则会引起冲突:解决办法是我们可以修改冲突文件后重新提交,中进行选择要保留他的代码还是你的代码
🎁主分支:
主分支master应非常稳定,用来发布新版本,一般情况下不允许在上面工作,工作一般情况下在新建的dev分支上工作,工作完后dev分支代码稳定后可以合并到主分支master上来
🔥三个区域
关系图
👌工作区
Working Directory
平时存放项目代码的地方
👌暂存区
Stage/Index
用于临时存放你的改动,保存即将提交到文件列表信息
👌仓库
Git Directory
存放数据的位置以及提交到所有版本的数据
如果在加上远程的git仓库(Remote Directory)就可以分为四个工作区域
git管理的文件有三种状态:已修改(modified),已暂存(staged),已提交(committed)
个人本地仓库的搭建
选中一个文件夹,在git bash中运行
创建全新的个人仓库
# 在当前目录新建一个Git代码库
$ git init
码云gitee
🔥gitee的使用
国内好用的远程仓库
用github很慢,不方便,这个也一样
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上大数据知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
方便,这个也一样
[外链图片转存中…(img-tYNqXtrD-1714405235604)]
[外链图片转存中…(img-sfGpSY7r-1714405235604)]
[外链图片转存中…(img-DyFTbBKK-1714405235605)]
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上大数据知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新