git
概述:
git
是一个版本管理工具。用于管理对应的项目的版本。
git
是一个分布式的项目管理工具,我每个本地的
代码都是一个本地的仓库,然后最终提交到远程仓库(
git
是一个多分支的版本管理工具)。
svn
是一个
版本管理工具,它是集中式的项目管理工具(单分支 客户端服务端上传)。
git
的下载和安装
git
官网
下载地址
安装
无脑下一步 (最好不要更改默认路径)
测试是否安装成功
找到一个文件夹点击右键
弹窗有一个
git gui here
(从当前位置打开
gui
)
git bash here
(从当前位置
打开命令行)当你出现这个俩个内容就已经安装完成。
dos
命令测试(找到当前安装路径下的
bin
目录 进入
cmd
)
git
入门
dos
命令操作(
windows
的相关命令行
cmd
打开)
linux
命令操作 (
linux
的命令行)
git bash here
打开的命令窗口是一个
linux
命令窗口
创建本地仓库(创建的
git
目录是一个隐藏文件)
git
的分区
git
--version
cd
进入文件夹
mkdir
创建文件夹
ipconfig
查看网络配置
cls
清除所有内容
cd
进入文件夹
ls
查看文件
ll
查看所有的文件以列表形式
clear
清除所有的内容
shutdown
关机
reboot
重启
mkdir
创建文件夹
tar
解压
git
init
#
初始化本地仓库
对应的
git
仓库分区,分为三个区。
工作区 (你就是你的工作代码)
暂存区 (暂存你的代码 通过状态可以查看对应的暂存内容 可以更改)
历史区(版本库)(
通过日志可以查看你的提交记录 最终记录存在历史区 历史区不能更改)
分区相关操作
从工作区到暂存区
查看状态
从暂存区撤回(不会影响工作区)
git
add
文件名
#
添加对应的文件到暂存区
git
add
文件夹名
#
添加对应文件夹里的所有文件到暂存区
git
add .
#
添加所有的文件到暂存区
git
add *
#
添加所有的文件到暂存区
git
add
--all
#
添加所有的文件到暂存区
git status
从暂存区到历史区
在第一次进入提交的时候他需要你配置对应的用户名和邮箱号
提交命令
vi
编辑器
vi
编辑器三种模式
阅读模式 (默认的模式 从插入模式进入阅读模式按
esc
键)
插入模式 (进入插入模式才可以进行编辑
按
i a o
都可以进去 通过阅读模式进入)
命令行模式 (执行命令 从阅读进入
:wq
保存退出)
git
reset HEAD
--
文件名
git
reset HEAD
--
文件夹
git
reset HEAD
--
.
#
撤回所有
git
reset HEAD
--
*
#
撤回所有
git
config user.username
名字
--global
git
config user.email
邮箱
--global
git commit
文件名
git commit
文件夹名字
git commit .
git cmmit *
命令
直接设置对应的提交信息进行提交
从暂存区提交到历史区 暂存区就没有了
从历史区库撤回
分支
概述
分支其实就是将每个功能进行相关的抽取,让每个功能之前可以不受影响。
示例
某公司开发一个医药管理系统,张三负责一个登录功能,李四负责一个审批功能。俩个功能之前应该是
没有关系的,在对应下载代码的时候,张三只需要下载张三的代码,李四只需要下载李四的代码,因为
我们现在只有一个分支,那么张三的代码和李四的代码是不是都要上传到这个分支,那么就会出现张三
的代码可能覆盖李四的代码(混淆)。为了防止这个操作对应的就可以给张三的功能和李四的功能开辟
不同的分支那么现在他们就不会影响了。
分支是为了更加方便多人开发协作
。
git log
git commit
文件名
-m
提交信息
git reset --hard
版本号
git reset --hard HEAD #
撤回最近提交的
分支命名及相关要求
git
分支分为集成分支、功能分支和修复分支,分别命名为
master
、
feature
和
fix
,均为单数。不可使
用
features
、
future
、
hotfixes
、
hotfixs
等错误名称。
master
(主分支,永远是可用的稳定版本,
不能直接在该分支上开发
)
develop
(开发主分支)
master_check
(未上线前的开发分支,该分支只做只合并操作,不能直接在该分支上开发,前期
开发完成后将
feature
分支合并到此分支)
online
(线上分支,由发版人员确认测试没问题后,将
online_check
分支合并到此分支)
online_check
(线上开发主分支,所有新功能以这个分支来创建自己的开发分支,该分支只做只合
并操作,不能直接在该分支上开发)
feature-xxx
(功能开发分支,在
develop
上创建分支,以自己开发功能模块命名,功能测试正常后
合并到
develop
分支,开发完成后合并到
online_check
分支上)
fix-xxx
(修改
bug
分支,在
master
分支上创建,修复完成后合并到
online_check
)
注意事项:
一个分支尽量开发一个功能模块,不要多个功能模块在一个分支上开发。
feature
分支在申请合并之前,最好是先
pull
一下
master_check
分支下来,看一下有没有冲突,
如果有就先解决冲突后再申请合并。
分支相关操作
开辟分支
查看分支(
*
号表示当前所在分支)
切换分支
删除分支(不能处在当前分支删除当前分支)
feature/login
git branch
分支名
git branch
git checkout
分支名
git branch -d
分支名
git branch -D #
强制删除
合并分支(将指定分支合并到当前分支)
衍合分支(将指定分支衍合到当前分支)
衍合和合并的区别在于,合并会产生一个
merge commit
,衍合不会
gitee
概述:
gitee
是一个代码托管平台(国内 码云),他其实也是一个远程仓库(可以将你的代码上传到这个仓
库)。类似于
gitEE
的平台还有
gitHub
(全球性的代码托管平台)以及类似于
gitHub
的一个托管平台
gitLable
(需要自己搭建环境 私服 )
gitEE
入门
账号注册
git merge
分支名
git rebase
分支名
主页
新建仓库
克隆
提交内容到远程仓库
拉取最新内容
请求内容
git
冲突
git
add .
git
commit .
-m
信息
git
remote add origin url
地址
#
这个
git
文件夹是由
gitee
平台创建 不需要连
git
push origin master
git
pull origin master
#
拉取最新的内容 合并分支
git
fetch origin master
#
不会合并对应的分支
版本的冲突,
a
和
b
维护同一份代码(版本
0
),
a
先提交了版本
1
,
b
再提交的话就会有冲突(版本
0
)
b
就是不能提交上去,这个时候就要解决这个问题,我们就可以先拉取最新的这个时候
b
的版本就变成了
版本
1
然后
b
再提交这个时候版本就变成了版本
2
就可以顺利提交,如果
a
和
b
写的同一份文件呢,这个时
候也会有问题(冲突问题 保留谁的文件 比对代码保留对应的内容处理冲突(人工))
vscode
来处理
git fetch origin master
:
temp
#
请求
master
的内容进行备份 备份的分支
temp
git diff temp
#
比对
git merge temp
#
合并
扩展内容
http
的协商缓存和强制缓存
缓存
概述:
下载一个电影到你本地就称为缓存,缓存的概念就是将资源下载你的电脑上,缓存的好处就是提高速
度,他可以将我们的页面渲染的性能提高。对应的
http
为了提高我们的数据请求的速度性能他就内置缓
存,为了减少对应的服务器处理提高对应的性能。
http
内置缓存有俩种分别为
强制缓存
协商缓存
强制缓存
就是强制性让页面请求的数据通过缓存读取(数据不变的)时效性(响应头)
cache-control
缓存控制器
返回的状态码一定是
200
协商缓存
就是服务器和浏览器进行协商看对应的数据要重新响应 (请求一定会发生)
etag
这个内容是用于判断当前的文件是否发生变化
last-modeified
文件的最后修改时间通过这个时间判断数据是否发生变化了
如果数据是没有更改那么给你返回的状态码是
304
如果数据发送变化那么重新响应数据 返回的状态码是
200
http
的协商缓存和强制缓存的区别
强制缓存的优先级高于协商缓存(
cache-control
来控制
1.1
新增的
1.0
是一个
expires
来控制)
强制缓存的数据一定没有发送变化 所以返回的状态码一定是
200
协商缓存缓存(
etag
和
last-modified
来共同控制)是数据可能发送变化 或者是强制缓存过期了 这
个时候浏览器一定会发送请求
如果数据发送变化 返回状态码为
200
没有变化状态码
304