【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.mzph.cn/news/59152.shtml

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

相关文章

项目 - 后端技术栈转型方案

前言 某开发项目的后端技术栈比较老了,现在想换到新的技术栈上。使用更好的模式、设计思想、更合理的架构等,为未来的需求迭代做铺垫。怎么办呢?假设系统目前在线上运行着的,直接整体换的话耗时太久,且中间还有新的需…

1.6 编写双管道ShellCode

本文将介绍如何将CMD绑定到双向管道上,这是一种常用的黑客反弹技巧,可以让用户在命令行界面下与其他程序进行交互,我们将从创建管道、启动进程、传输数据等方面对这个功能进行详细讲解。此外,本文还将通过使用汇编语言一步步来实现…

pdf如何删除其中一页?了解一下这几种删除方法

pdf如何删除其中一页?随着电子文档的广泛应用,PDF已成为最常见的文档格式之一。然而,有时候你可能会发现,你的PDF文档中包含了一些多余的页面,或者你需要删除其中的某一页。那么,该如何删除PDF中的页面呢&a…

精准运营,智能决策!解锁天翼物联水利水务感知云

面向智慧水利/水务数字化转型需求,天翼物联基于感知云平台创新能力,提供涵盖水利水务泛协议接入、感知云水利/水务平台、水利/水务感知数据治理、数据看板在内的水利水务感知云服务,构建水利水务感知神经系统新型数字化底座,实现智…

Python之动态规划

序言 最近在学习python语言,语言有通用性,此文记录复习动态规划并练习python语言。 动态规划(Dynamic Programming) 动态规划是运筹学的一个分支,是求解决策过程最优化的过程。20世纪50年代初,美国数学家…

vue使用命令npm install 报错 cb() never called!

一.错误说明,npm本身下载就慢,有可能是网络的问题。 二.解决方案,把npm设置成淘宝镜像后,再重新npm install npm config set registry https://registry.npm.taobao.org 三.还是不行,还会出现同样的问题,那接下来先清理一下npm缓存 npm cache…

LLMs之Code:Code Llama的简介、安装、使用方法之详细攻略

LLMs之Code:Code Llama的简介、安装、使用方法之详细攻略 导读:2023年08月25日(北京时间),Meta发布了Code Llama,一个可以使用文本提示生成代码的大型语言模型(LLM)。Code Llama是最先进的公开可用的LLM代码任务,并有潜…

微服务--服务介绍

Spring Cloud实现对比 Spring Cloud 作为一套标准,实现不一样 Spring Cloud AlibabaSpring Cloud NetflixSpring Cloud 官方Spring Cloud Zookeeper分布式配置Nacos ConficArchaiusSpring Cloud ConfigZookeeper服务注册/发现Nacos DiscoveryEureka--Zookeeper服务…

Android Native Code开发学习(二)JNI互相传参返回调用

Android Native Code开发学习(二) 本教程为native code学习笔记,希望能够帮到有需要的人 我的电脑系统为ubuntu 22.04,当然windows也是可以的,区别不大 一、native code介绍 native code就是在android项目中混合C或…

LeetCode第21~25题解

CONTENTS LeetCode 21. 合并两个有序链表(简单)LeetCode 22. 括号生成(中等)LeetCode 23. 合并K个升序链表(困难)LeetCode 24. 两两交换链表中的节点(中等)LeetCode 25. K 个一组翻转…

Mac系统Anaconda环境配置Python的json库

本文介绍在Mac电脑的Anaconda环境中,配置Python语言中,用以编码、解码、处理JSON数据的json库的方法;在Windows电脑中配置json库的方法也是类似的,大家可以一并参考。 JSON(JavaScript Object Notation)是一…

使用nps实现内网穿透

1、介绍 ​ 当我们想把内网的一些资源暴露在公网上时,可以使用内网穿透功能。比如公司的内网服务器,部署了平时需要开发的项目,但是回到家中无法访问,就可以使用内网穿透,将公司内网的接口映射到一台公网的服务器上&a…

C语言每日一练------Day(5)

本专栏为c语言练习专栏,适合刚刚学完c语言的初学者。本专栏每天会不定时更新,通过每天练习,进一步对c语言的重难点知识进行更深入的学习。 今日练习题关键字:错误的集合 密码检查 💓博主csdn个人主页:小小u…

分类预测 | MATLAB实现MIV-SVM的平均影响值MIV算法结合支持向量机分类预测

分类预测 | MATLAB实现MIV-SVM的平均影响值MIV算法结合支持向量机分类预测 目录 分类预测 | MATLAB实现MIV-SVM的平均影响值MIV算法结合支持向量机分类预测分类效果基本介绍程序设计参考资料 分类效果 基本介绍 先利用平均影响值MIV算法对特征进行排序,确定分类特征…

基于PHP的电脑商城系统

有需要请加文章底部Q哦 可远程调试 基于PHP的电脑商城系统 一 介绍 此电脑商城系统基于原生PHP开发,数据库mysql,前端bootstrap。用户可注册登录,购物下单,评论等。管理员登录后台对电脑商品,用户,订单&a…

五、多表查询-3.4连接查询-联合查询union

一、概述 二、演示 【例】将薪资低于5000的员工,和 年龄大于50岁的 员工全部查询出来 1、查询薪资低于5000的员工 2、查询年龄大于50岁的员工 3、将薪资低于5000的员工,和 年龄大于50岁的 员工全部查询出来(把上面两部分的结果集直接合并起…

十二、集合(2)

本章概要 添加元素组集合的打印列表 List 添加元素组 在 java.util 包中的 Arrays 和 Collections 类中都有很多实用的方法,可以在一个 Collection 中添加一组元素。 Arrays.asList() 方法接受一个数组或是逗号分隔的元素列表(使用可变参数&#xff…

VMware标准虚拟交换机和分布式交换机

一、虚拟交换机 初期的网络虚拟化,是非常狭义的概念,主要指的是因为计算资源虚拟化,每台物理宿主机上安装了虚拟化软件,同时会部署了虚拟交换机,负责物理机上面承载的VM(虚拟机)之间与对外的通…

C++ Day7

一、auto关键字 1.1 概念 C11中引出了变量的类型自动推导,它和Python 不一样,C需要用auto关键字来引导 1.2 作用 auto修饰变量,可以自动推导出变量的数据类型 1.3注意 1> 使用auto修饰变量时,必须初始化 2> auto的右值…