版本控制工具
为什么要学习版本控制工具?
1.1遇到一个问题:当我们实现一个功能时,有多重实现的方法,有可能一些暂时不需要使用的代码会出现注释,但是这些注释会增加文件的大小,这不利于用户访问速度.
1.2开发项目中,一般是多人开发,如何解决代码共享问题?
如果只是把文件打包发送,会很低效.
常见版本控制工具
Git:目前世界上最先进的分布式版本控制系统.
svn:比较旧的版本控制工具
安装与配置
1.1安装
git官网安装:https://git-scm.com/download/win
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 目标分支
;