【Java架构-版本控制】-Git进阶

本文摘要

Git作为版本控制工具,使用非常广泛,在此咱们由浅入深,分三篇文章(Git基础、Git进阶、Gitlab搭那家)来深入学习Git


文章目录

  • 本文摘要
  • 1. Git分支管理
  • 2. Git分支本质
    • 2.1 分支流转流程(只新增文件)
    • 2.2 分支流转流程(编辑文件、新增、冲突)
  • 3. Git stash
  • 4. 远程仓库
    • 4.1 将本地库关联远程仓库
    • 4.2 指令
    • 4.3 tag管理


1. Git分支管理

指令说明举例
git branch查看分支git branch
git branch dev创建分支git branch dev
git checkout dev切换分支git checkout dev
git checkout -b dev2创建并切换分支git checkout -b dev2
git branch -d dev删除分支,如果dev分支未提交则不能删除git branch -d dev
git branch -D dev强制删除,即使有未提交也可被删除git branch -D dev
git merge dev将dev分支合并至当前分支git merge dev

2. Git分支本质

Git分支本质:即是通过改变指针从而来改变分支版本,HEAD指向的位置即分支位置

2.1 分支流转流程(只新增文件)

dev分支与master分支只是存在新增文件的差异,则合并代码时,只需要进行指针移动即可,不会产生一次commit操作

  • 创建master

在这里插入图片描述

  • 在master代码创建dev分支

在这里插入图片描述

  • 切换至dev分支

在这里插入图片描述

  • 在dev开发并提交代码(只增加了新文件)

在这里插入图片描述

  • 将dev分支合并至master

在这里插入图片描述

2.2 分支流转流程(编辑文件、新增、冲突)

如果不是只新增文件,则在代码合并时,会产生一次新的commit操作

  • 创建master

在这里插入图片描述

  • 在master代码创建dev分支

在这里插入图片描述

  • master中修改代码

在这里插入图片描述

  • 切换至dev分支

在这里插入图片描述

  • 在dev中修改代码

在这里插入图片描述

  • 将dev分支合并至master

在这里插入图片描述

3. Git stash

暂存区:开发过程中会遇到当前分支未开发完成,但又必须切换至其它分支进行其它操作,如果直接切换分支会导致当前分支代码被切换至新分支,从而影响新分支,故而可将当前分支保存至暂存区

  • 保存至暂存区:git stash
  • 查看暂存区:git stash list
  • 移出暂存区:git stash pop

4. 远程仓库

4.1 将本地库关联远程仓库

  • 建立本地仓库并初始化
# 创建文件夹
$ mkdir demo1
# 进入文件夹
$ cd demo1
# 初始化git
$ git init
  • 远程仓库创建仓库,并复制远程仓库地址: https://gitee.com/xiaofengczy/study-git-1.git
  • 建立关联
# origin指远程仓库地址的别名,后续只需要输入origin即表示远程库 
git remote add origin https://gitee.com/xiaofengczy/study-git-1.git
  • 提交代码至远程库
# -u:表示需要输入用户名密码,origin表示远程仓库,这种操作只需要第一次
# 后续提交代码,直接git push 即可
git push -u origin master

4.2 指令

指令说明
git remote show展示远程仓库
git remote show origin展示远程仓库细节
git branch -a远程仓库查看
git branch -av查看本地和远程仓库最后提交
git clone 仓库地址克隆远程库代码至本地
git clone 仓库地址 名称克隆远程库代码至本地并重命名
git fetch将远程代码与本地代码同步,但并不会拉取
git pull拉取远程库代码至本地,本地分支已经存在
git checkout -b dev origin/dev本地分支不存在
1. 执行拉取动作
2.执行切换动作,将dev与远程库中分支对应
git push --set-upstream origin develop将本地分支推送至远程
git push -u origin dev2将本地分支推送至远程库
git branch -d dev
git push origin --delete dev
删除远程库:
1. 先删除本地分支
2. 在删除远程分支

4.3 tag管理

指令说明
git tag v1.0打tag
git tag -a v1.0.2 -m ‘release version’打tag,同时增加说明信息
git tag -d tag_name删除本地tag
git push origin tag tag_name推送tag至远程库
git push origin --tag推送所有tag至远程库
git pulltag拉取
git push origin :refs/tags/tag_name删除远程库tag
git push origin --delete tag tag_name删除远程库tag
git checkout -b branchName tagNametag检出为分支

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/87008.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Vue3(开发h5适配)

在开发移动端的时候需要适配各种机型&#xff0c;有大的&#xff0c;有小的&#xff0c;我们需要一套代码&#xff0c;在不同的分辨率适应各种机型。 因此我们需要设置meta标签 <meta name"viewport" content"widthdevice-width, initial-scale1.0">…

Docker修改容器ulimit的全部方案及各方案的详细步骤

要修改Docker容器的ulimit&#xff08;用户资源限制&#xff09;&#xff0c;有以下三种方案&#xff0c;每个方案的详细步骤如下&#xff1a; 方案一&#xff1a;在Dockerfile中设置ulimit 打开您的Dockerfile。在文件中添加以下命令来修改ulimit&#xff1a;RUN ulimit -n …

react +Antd Cascader级联选择使用接口数据渲染

1获取接口数据并将数据转换成树形数组 useEffect(() > {axios.get(/接口数据, {params: {“请求参数”},}).then((res) > {console.log(res);const getTreeData (treeData, pid) > {// 把数据转化为树型结构let tree [];let currentParentId pid || 0;for (let i …

Skip Connection——提高深度神经网络性能的利器

可以参考一下这篇知乎所讲 https://zhuanlan.zhihu.com/p/457590578

【Spring】什么是 AOP(面向切面编程) ? 为什么要有 AOP ? 如何实现 Spring AOP ?

文章目录 前言一、什么是 AOP ?二、为什么要使用 AOP ?三、 AOP 的组成四、Spring AOP 的实现1, 添加依赖2, 定义切面3, 定义切点4, 定义通知5, 创建连接点 总结 前言 各位读者好, 我是小陈, 这是我的个人主页, 希望我的专栏能够帮助到你: &#x1f4d5; JavaSE基础: 基础语法…

最新docker多系统安装技术

在Ubuntu操作系统中安装Docker 在Ubuntu操作系统中安装Docker的步骤如下。 1&#xff0e;卸载旧版本Docker 卸载旧版本Docker的命令如下&#xff1a; $ sudo apt-get remove docker docker-engine docker.io 2&#xff0e;使用脚本自动安装 在测试或开发环境中&#xff0…

SQLmap使用

文章目录 利用sqlmap 注入得到cms网站后台管理员账密获取数据库名称获取cms数据库的表名获取users表中的字段&#xff08;内容&#xff09;获取username字段和password字段的内容 salmap破解psot请求数据包salmap获取getshell 利用sqlmap 注入得到cms网站后台管理员账密 获取数…

在本地搭建Jellyfin影音服务器,支持公网远程访问影音库的方法分享

文章目录 1. 前言2. Jellyfin服务网站搭建2.1. Jellyfin下载和安装2.2. Jellyfin网页测试 3.本地网页发布3.1 cpolar的安装和注册3.2 Cpolar云端设置3.3 Cpolar本地设置 4.公网访问测试5. 结语 1. 前言 随着移动智能设备的普及&#xff0c;各种各样的使用需求也被开发出来&…

QT初学者该安装qt creator哪个版本?

对于Qt初学者&#xff0c;建议安装最新版本的Qt Creator。Qt Creator是Qt官方提供的集成开发环境&#xff08;IDE&#xff09;&#xff0c;用于开发Qt应用程序。每个Qt版本都会配套提供对应的Qt Creator版本&#xff0c;确保兼容性和稳定性。同时&#xff0c;选择合适的Qt版本也…

聚观早报|闻泰科技上半年净利润12.58亿;馥逸医疗完成A轮融资

【聚观365】8月27日消息 闻泰科技2023上半年净利润12.58亿 馥逸医疗完成A轮融资 东方甄选转型直播电商成功 AI牙齿美白公司白里挑一完成千万元天使轮融资 特斯拉新款Model 3全面升级 闻泰科技上半年净利润12.58亿 闻泰科技发布2023年半年报。报告期内&#xff0c;闻泰科技…

Prometheus关于微服务的监控

在微服务架构下随着服务越来越多,定位问题也变得越来越复杂,因此监控服务的运行状态以及针对异常状态及时的发出告警也成为微服务治理不可或缺的一环。服务的监控主要有日志监控、调用链路监控、指标监控等几种类型方式,其中指标监控在整个微服务监控中比重最高,也是实际生…

【SCSS变量】$ | | var | @for | @include | @function | @each 等常用方法使用

SCSS优点&#xff1a;编写清晰、无冗余、语义化的CSS&#xff0c;减少不必要的重复工作 1、变量声明&#xff08;$&#xff09;和使用2、使用 & 代替父元素3、在HTML中使用 :style{--name: 动态值}自定义属性&#xff0c;在SCSS中用var(--name)函数绑定动态变量值&#xff…