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