版本控制系统

271 阅读6分钟

版本控制工具

为什么要学习版本控制工具?

1.1遇到一个问题:当我们实现一个功能时,有多重实现的方法,有可能一些暂时不需要使用的代码会出现注释,但是这些注释会增加文件的大小,这不利于用户访问速度. 1.2开发项目中,一般是多人开发,如何解决代码共享问题? 如果只是把文件打包发送,会很低效. 在这里插入图片描述

常见版本控制工具

Git:目前世界上最先进的分布式版本控制系统. svn:比较旧的版本控制工具

安装与配置

1.1安装 git官网安装:git-scm.com/download/wi… 1.2配置邮箱与姓名 首次使用者需要提供提交者信息,往后开发可以用来区分不同修改者

git config  --global user.name "自己的用记名"
git config  --global user.email "自己的正确的邮箱"

# 查看配置信息
git config --list

本地仓库(工作区)\暂存区\提交历史

1.1仓库初始化

新建文件夹做仓库 方法1: 把文件夹用vscode打开,点击源代码管理,初始化储存库:下面执行的任何操作,都需要基于一个仓库. 在这里插入图片描述 方法2:使用命令行 文件夹右键打开控制窗,输入git init

git init

在这里插入图片描述 表示初始化一个Git仓库,当初始化成功,会在项目的根目录创建一个.git文件夹,文件夹是隐藏的,取消隐藏就可以看见,用于管理版本信息. 如果要删除仓库,只需要把文件夹下的.git文件删除即可

2.将工作区的代码提交到暂存区 先在文件夹内创建一个文件,调取控制台输入. 添加单个文件:git add 文件名字 ; 把工作区所有文件都添加到暂存区:git add .; 暂存区没有实体文件; 在这里插入图片描述 3.把暂存区代码提交到版本库 完整语句:git commit --message "第一次提交"; 简写语句:git commit -m "第一次提交"; 必填属性-m表示提交的记录信息,""双引号里面用来记录文件信息,不要乱写,要有语义化. 在这里插入图片描述

4.查看提交历史命令 语句:git log commit:表示提交的hash值,用来标记提交的唯一性 Author: 提交人信息 Date:提交时间 在这里插入图片描述 5.查看文件状态 语句:git status 他是用于查看工作区和暂存区文件的状态. 提交后: 在这里插入图片描述 当还有跟踪状态时: 在这里插入图片描述 6.更便捷的提交历史方式,绕过暂存区 直接从工作区提交到历史 语句:git commit -a -m"提交的信息" 在这里插入图片描述

注意:如果是新创建的文件,默认状态是untrack状态,表示文件没有被追踪,这个是快速命令提交.如果需要把新文件提交,首先要使用git add 命令添加到暂存区

7.查看当前文件修改和上一个版本的区别 语句:git diff; 主要看修改后又没提交历史的差别 在这里插入图片描述 8.回滚提交历史(慎用,无法找回!!!) 语法:git reset --hard 提交的哈希值; 注意空格 --hard表示直接修改工作区的代码,这个参数还有其他值,这里不做展开; 直接绕过暂存区回滚; 在这里插入图片描述

远程仓库

寄存的历史信息储存在本地,为了开发的方便,一般会推送在远程仓库. 远程仓库类别: 1.全球最大的代码共享平台github 弊端:访问慢 优势:资源非常丰富,有全球最精华的代码 2.国内代码托管平台 码云gitee 弊端:项目比较少 优势:访问快 3.公司自建代码托管(gitlab) 弊端:在外面无法访问 优势:安全

使用 场景一:远程仓库不为空,通过克隆远程仓库到本地

1.把远程仓库克隆到本地 语法:git clone 远程仓库地址 创建一个文件夹,控制台输入 在这里插入图片描述 2.更新本地仓库 语法:git pull 与克隆不同是,克隆是把整个仓库搬下来,pull只是更新. 3.把本地代码推到远程仓库 语法:git push

在这里插入图片描述

场景二:本地仓库关联一个空的远程仓库

把本地仓库发布到远程仓库

1.创建一个远程仓库

2.创建本地仓库,并初始化

3.产生一次提交

4.本地仓库关联远程仓库 语法:git remote add origin 远程仓库地址;

5.把本地代码推到远程仓库,因为远程仓库是空的,需要创建分支 语法:git push -u origin master;

6.查看当前仓库的远程仓库地址 语法:git remote -v;

情景三:如果同时修改同一个文件,会出现冲突问题, 冲突问题解决办法:需要手动解决,选择需要保留的代码

分支管理

什么是分支? 相当于独立仓库,每个分支之间工作互不影响.

分支解决什么问题? 开发一个版本可能有不同的功能,例如:注册/登录/购物车/抢购活动,到了十一上限截止时间,抢购的功能还没开发完毕.这时候可以放弃抢购活动的分支代码,直接上线注册/登录/购物车. 解决多个功能场景下的问题.

分支怎么用?

1.查看分支 语法:git branch; 一般仓库有默认主分支master 不要在master分支提交代码!!!!!!!!!!!!!!!!!!!!! 一般在develop开发分支,或fe/login 在这里插入图片描述

2.创建分支 创建分支,顺便切换到分支名字 语法一:git checkout -b "名字" 语法二:git branch"分支名字" 两个都可以用 在这里插入图片描述

3.切换分支 语法:git checkout "分支名字"

4.删除分支 语法:git branch -D"分支名字" 注意大写! 在这里插入图片描述

5.合并分支 要先切换到master 语法:git merge 目标分支;

汇总

在这里插入图片描述