首页 > 其他分享 >day29 git

day29 git

时间:2022-11-10 22:13:11浏览次数:57  
标签:文件夹 缓存 day29 -- git 提交 分支

 

概述 :

git是一个版本管理工具 , 是用于管理项目的版本的 , 它是一个分布式的项目管理工具 ( 支持多分支 , 不区分客户端服务端 ) , 每个本地的代码都是一个本地的仓库 , 然后最终提交到远程仓库

svn也是一个版本管理工具 , 它是集中式的项目管理工具 ( 单分支 , 要客户端服务端上传 )

git的安装和下载

git官网 : https://git-scm.com/

下载链接 : https://git-scm.com/download/win

安装

无脑下一步 ( 最好不要更改默认路径 )

测试是否安装成功

找到一个文件夹点击右键 弹窗有一个git gui here(从当前位置打开gui)和git bash here(从当前位置打开命令行)

 

 

 

dos命令测试 ( 找到当前安装路径下的bin目录 , 进入cmd )

git --version

git入门

dos命令操作 ( window的相关命令行 ,使用cmd打开 )

cd 进入文件夹
mkdir 创建文件夹
ipconfig 查看网络配置
cls清除所有内容

linux命令操作 ( linux的命令行 )

cd 进入文件夹
ls 查看文件
ll 查看所有文件以列表形式
clear  清除所有的内容
shutdown 关机
reboot 重启
mkdir 创建文件夹
tar 解压
git bash here 打开的命令窗口是一个linux命令
创建本地仓库 ( 创建的git目录是一个隐藏文件夹 )
git init #初始化本地仓库

git的分区

不管是本地仓库还是远程仓库都是有分区的 , git仓库分为三个区

  • 工作区 ( 就是你的工作代码 , 必须在你的git目录下 )

  • 暂存区 ( 暂存你的代码 , 通过状态可以查看你的暂存内容 , 可清除更改 )

  • 历史区 ( 也叫版本库 ) (通过日志可以查看你的提交记录 , 最终记录存在历史区 , 历史区数据不能删除 , 可以撤回 )

分区相关操作

  • 从工作区到暂存区

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 commit *

vi编辑器

vi编辑器的三种模式

  • 阅读模式 ( 默认的模式 , 从插入模式进入阅读模式按esc键 )

  • 插入模式 ( 可以进行编辑 , 需要通过阅读模式进入,按i a o都可以进去 )

  • 命令行模式 ( 执行命令 , 需要从阅读模式进入 按:wq保存退出 )

  • 直接设置提交信息进行提交

git commit 文件名 -m 提交信息
从暂时区提交到历史区 , 暂时区就没有内容了
  • 提交记录查看

git log

  • 从版本库撤回 ( 复原 )

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是一个代码托管平台 ( 国内的 , 码云 ) , 它其实也是一个远程仓库 ( 可以将你的代码上传到这个仓库 ) ,类似于gitEE的平台还有gitHub ( 全球性的托管平台 ) 以及gitHub的子产品 ( 类似于gitHub的一个托管平台gitLable( 需要自己搭建环境 , 私有服务器 ) )

工作中用的一般是gitLable ( 会分发账号 )

gitEE入门

1.注册

2.登录

3.新建仓库

 

 

 

克隆

4.提交内容到远程仓库

git add . 
git commit . -m 信息
git remote add origin url地址 #如果这个.git文件夹是由gitee平台创建的(克隆),就不需要连接
git push origin master

git冲突

就是版本的冲突 , 比如a和b维护同一份代码 (版本0) , a维护好先提交了版本1 , b再提交的话就会有冲突(版本0) , 也就不能提交上去 , 这个时候就需要解决这个问题 , 我们可以先拉取最新的版本 , 这个时候b版本就变成了版本1 , 然后b再提交的时候版本变成了版本2就可以顺利提交 , 然后如果a和b写的是同一份文件也会有问题 ,因为不知道应该保留谁的文件 , 这时候就需要比对代码保留对应的内容然后人工处理冲突

git fetch origin master:temp #请求master的内容并进行备份,备份的分支叫temp
git diff temp #比对
git merge temp #合并

vscode来处理

扩展内容

http的协商缓存和强制缓存

缓存 概述 :

下载一个电影到你本地就称为缓存 , 就是将资源下载到你的电脑上 , 缓存的好处就是提高速度 , 它可以将我们的页面渲染的性能提高 , http为了提高我们的数据请求的速度性能它就内置了缓存 , 为了减少服务器处理提高性能

http内置缓存有2种 , 分别为
  • 强制缓存 ( 不会发送请求 , 读取本地数据 )

--就是强制性的让页面请求的数据通过缓存读取 ( 数据不变的而且有时效性 ) 在响应头里

--cache-control 缓存控制器

--返回的状态码一定是200

  • 协商缓存 ( 请求一定会发送 )

--就是服务器和浏览器进行协商 , 看对应的数据是否要重新响应

--etag 是用于判断当前的文件是否发生变化

--last-modified 文件的最后修改时间 , 通过时间判断数据是否发生变化

--如果数据没有更改 , 那么给你返回的状态码是304

--如果数据发生变化 , 那么会重新响应数据 , 返回的状态码为200

http的协商缓存和强制缓存的区别
  • 强制缓存的优先级高于协商缓存

  • 强制缓存的数据一定没有发生变化 , 所以返回的状态一定是200

  • 协商缓存是数据可能发生变化 , 或者是强制缓存过期了 , 这个时候浏览器一定会再次发请求 , 如果数据发生变化 , 返回的状态码是200 , 没有变化状态码为304

  • 强制缓存用cache-control控制 ( 是http版本1.1新增的 , 1.0是expires(过期时间)来控制 ) , 协商缓存用etag和last-modified来共同控制

标签:文件夹,缓存,day29,--,git,提交,分支
From: https://www.cnblogs.com/itlulu/p/16878953.html

相关文章

  • GitHub | Mac OS GitHub 图片打不开(2020.01.06)
    最近打算维护一个自己的东西,突然发现上传的图片时不时的打不开,很是无语,看到一老哥的博文,尝试一波:​​【最新】解决github图片不显示的问题​​问题原因截图如下:解决方案如......
  • Git提示error setting certificate verify locations解决办法
    话说前一段时间从GitHub上更新提交代码,总是报如下的错误,给我郁闷的。Pushfailed:Failedwitherror:fatal:unabletoaccess‘​​https://github.com/HLQ-Struggle/Te......
  • 用 git 管理 Datakit 配置
    用git管理Datakit配置什么是DatakitGit仓库的目录要求实践conf.d目录知识点:观测nginx基本信息第1步:配置nginx侧开启status功能第2步:准备......
  • 使用 Gitea + Drone CI 自动部署 Hexo 静态网站到 Cloudflare Pages
    前段时间使用Hexo重建了个人博客。我之前一直使用VSCode在本地写博客,用git推送到GitHub存档,每次推送的之后都由GitHubActions自动构建Hexo静态网站然后发布......
  • 124-常用的gitignore
    logs.idea.gittargetdist.mvn.classpath.factorypath.apt_generated.project.settings.springBeans.sts4-cache*.iws*.iml*.iprThumbs.dbehthumbs.dbDesk......
  • git 教程 --git reset 命令
    简介在程序员实际工作过程中,提交代码后,偶尔也有后悔的时候,但是都提交到本地仓库或者推送到远程服务器了,可怎么办?我想要回到某一个提交的版本,git就很贴心的提供了对应的功......
  • Linux基础知识(9)- Git 简单使用(一)
    GIT,全称是分布式版本控制系统,Git支持分布式部署,可以有效、高速的处理从很小到非常大的项目版本管理。分布式相比于集中式的最大区别在于开发者可以提交到本地,每个开发者......
  • 关于右键git bash不生效的另类解决方案jintianshangwu
    今天上午我是参照了网上别的博主的删除对应注册表的办法,重启电脑也没用,gitbash还是在右键那里,并且还点击了也没用。 后面我就想到了一个办法,删除git安装目录,删除了之后......
  • day29 git讲解
    概述:git是一个版本管理工具。用于管理对应的项目的版本。git是一个分布式的项目管理工具,我每个本地的代码都是一个本地的仓库,然后最终提交到远程仓库(git是一个多分支的版......
  • 解决golang报错:imports github.com/go-sql-driver/mysql from implicitly required mo
    这句话的意思是,从隐式的引入模块导入的比如我使用某个第三方包,这个第三方包里面包含了mysql包我在代码里直接使用了这个mysql包,但是在go.mod里没有引入,代码里ide是不会报......