git常用命令之分支操作

3. 分支

3.1 创建分支

场景1:创建新分支

工作中遇到的使用方式:1.拉取新分支,2.做新需求 /修复BUG ,3.基于新分支提PR到目标分支

命令作用延展阅读
git branch test11. 基于当前分支最新提交新建分支 test1(但不会切换到test1分支)
2. 已存在同名分支则报错:a branch named 'test1' already exists
3. 没有关联的远程分支,故此分支依旧不可以直接执行git push
自证
git branch test2 125a1d15e功能如上
区别如下:基于指定提交创建新分支
自证
git checkout -b test21. 基于当前分支最新提交新建分支test2,并切换到test2
2. 已存在同名分支则报错:a branch named 'test2' already exists
3. 没有关联的远程分支,故此分支依旧不可以直接执行git push
自证
☆☆☆☆☆
git checkout -b test2 125a1d15e功能如上
区别如下:基于指定提交创建新分支
自证
git fetch origin release:dev参考下文 fetch 详解

场景2:临时查看某个提交的内容

工作中遇到的使用方式:调查BUG时查看git提交历史,临时查看某个提交的代码

命令-------------------------------------------------------------------------------作用延展阅读
1. git checkout 125a1d15e

2. git switch -c test4
1.1. 新建临时分支(HEAD detached at e0c619c)
1.2.已存在同名分支则报错: a branch named 'test4' already exists
1.3. 没有关联的远程分支,故此分支依旧不可以直接执行git push

2. 如果想保留这个临时分支,可执行此命令来创建新分支test4
自证
1. git checkout origin/main
2. git switch -c test4
功能如上
区别如下:拉取远程main分支的最新提交
自证

场景3:远程分支拉到本地并 建立关联

工作中遇到的使用方式:不通过PR的方式合入代码。直接拉取分支→修改→push

命令作用延展阅读
git checkout -t origin/release(-t 即 --track)

1. 拉取origin/release 到本地并创建release分支
2. git push 直接提交
自证
git checkout -b release origin/release

git push
1. 拉取origin/release 到本地并创建release分支

2. git push 直接提交
自证
☆☆☆☆☆
git checkout -b test23 origin/release

git push origin HEAD:release
1. 拉取origin/release 到本地并创建test23分支

2. git push 因为名字不匹配,故报错
3. 通过git push origin HEAD:release 提交代码
自证
1. 远程仓库有test6分支,本地没有
2. git checkout test6
参考下文 分支切换 详解自证

3.2 删除分支

场景1:删除本地分支 or 标签

命令-----------------------------------------------------------------------------------------------------------------作用延展阅读
git branch -d test1只是删除了这个「引用」而已,并不会删除任何 Commit-ID
但是,如果一个 Commit-ID 没有被任何一个分支引用的话,在一定时间之后,将会被 Git 回收机制删除;
自证
git branch -d -f test2强制删除分支test2自证
git branch -D test3强制删除分支test2自证

场景2:删除远程分支 or 标签

命令-----------------------------------------------------------------------------------------------------------------作用延展阅读
1. git branch -d -r origin/test1
2. git push origin :test1
1. 删除远程分支在本地的副本.git/refs/remotes/origin/test1
2. 删除远程分支test1
注意此push操作中,会在分支名称前加一个 :前缀,以便通知远程仓库删除远端的与本地同名的分支
自证
git push origin --delete test33删除远程分支test33自证
☆☆☆☆☆

3.3 远程分支重命名

命令--------------------------------------------------------------------------作用延展阅读
1. git checkout old-name
2. git branch -m new-name
3. git push origin :old-name new-name
1. check out the branch*
2. change local branch name
*3. push local new-name to remote old-name and change the remote branch name
链接
自证

3.4 查看分支

命令作用延展阅读
git branch查看所有本地分支自证
git branch -r-r 是 --remotes 的简写

查看所有远程分支
自证
git branch -a-a 是 --all 的简写

查看所有本地分支+所有远程分支
自证
git branch -v举例说明:test6 828852f msg自证
git branch -vv举例test6 62e5e7e [origin/test6] msg自证

3.5 切换分支

命令作用延展阅读
git checkout master从当前分支切换到master分支自证

场景1:远程仓库有test6分支,本地没有同名分支,本地git checkout test6 会自动拉取远程分支test6并创建同名本地分支

命令------------------------------------------------------------------------------------------------------------------------作用延展阅读
1. 远程仓库有test6分支,本地没有
2. git checkout test6
1. 自动拉取远程分支test6 并创建同名本地分支
2. .git/config配置文件里会追加关联关系 [branch "test6"],此分支可以直接执行git push
自证
1. 远程仓库有test6分支,本地有test6,他们没有关联关系,恰巧重名时
2. git checkout test6
git push 会被拦截
具体如何提交参考 push 命令

在这里插入图片描述

拓展:Git常用命令汇总

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

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

相关文章

Bootstrap 按钮

文章目录 Bootstrap 按钮按钮大小按钮状态激活状态禁用状态 按钮标签 Bootstrap 按钮 本章将通过实例讲解如何使用 Bootstrap 按钮。任何带有 class .btn 的元素都会继承圆角灰色按钮的默认外观。但是 Bootstrap 提供了一些选项来定义按钮的样式,具体如下表所示&…

Redis - Redis GEO实现经纬度测算距离,附近搜索范围

Redis GEO 主要用于存储地理位置信息,并对存储的信息进行操作,该功能在 Redis 3.2 版本新增 一、Redis GEO 操作方法 geoadd:添加地理位置的坐标 geopos:获取地理位置的坐标 geodist:计算两个位置之间的距离 geor…

【ArcGIS Pro二次开发】(43):线闭合

当我们需要将多段线【polyline】转为面【polygon】的时候,必须保证线是闭合的,不然是无法生成面的,如下图: 如果cad线段,可以在属性里将闭合选项设置为是,实现线的闭合: 但如果是在ArcGIS Pro里…

C++【初识哈希】

✨个人主页: 北 海 🎉所属专栏: C修行之路 🎃操作环境: Visual Studio 2019 版本 16.11.17 文章目录 🌇前言🏙️正文1、哈希思想2、哈希函数2.1、哈希函数的设计原则2.2、常见的哈希函数 3、哈希…

云原生——什么是云原生?

❄️作者介绍:奇妙的大歪❄️ 🎀个人名言:但行前路,不负韶华!🎀 🐽个人简介:云计算网络运维专业人员🐽 前言 伴随云计算的滚滚浪潮,云原生(CloudNative…

kubernetes核心概念 controller

kubernetes核心概念 Controller 一、pod控制器controller 1.1 Controller作用及分类 controller用于控制pod 参考: https://kubernetes.io/zh/docs/concepts/workloads/controllers/ 控制器主要分为: Deployments 部署无状态应用,控制pod升级,回退ReplicaSet 副…

ROS自带OpenCV和本地OpenCV版本冲突问题解决

1、报错信息 首先catkin_make编译功能包没有任何问题,100%生成目标文件,但是报了警告:库文件libmyslam.so需要的是libopencv_core.so.3.4,可能会与libopencv_core.so.3.2冲突。根据工程经验,警告不用管,直…

从浏览器输入url到页面加载(六)前端必须了解的路由器和光纤小知识

前言 上一章我们说到了数据包在网线中的故事,说到了双绞线,还说到了麻花。这一章继续沿着这条线路往下走,说一些和cdn以及路由器相关,运营商以及光纤相关的小知识,前端同学应该了解一下的 目录 前言 1. CDN和路由器…

Vue中watch与computed区别

<body><div id"root">姓&#xff1a;<input type"text" v-model"firstName"><br/><br/>名&#xff1a;<input type"text" v-model"lastName"><br/><br/>全名&#xff1a;&…

Spring:Bean

Bean 概述配置方式自动装配继承与依赖作用域外部属性文件的使用 概述 Spring 容器负责管理依赖注入&#xff0c;它将被管理的对象都称为 bean 。我们通过 xml 文件配置方式进行对 bean 的声明和管理。 写法如下&#xff1a; <beans><bean id"bean的唯一标识符…

EasyExcel实现execl导入导出

引言 在实际开发中&#xff0c;处理 Excel 文件是一个常见的需求。EasyExcel 是一个基于 Java 的开源库&#xff0c;提供了简单易用的 API&#xff0c;可以方便地读取和写入 Excel 文件。本文将介绍如何使用 EasyExcel 实现 Excel 导入功能&#xff0c;以及一些相关的技巧和注…

qt for android 开发之tcp通讯

简介 通过TCP使PC和android手机相互通讯。 准备 使用QT的网络模块 QT core gui networkgreaterThan(QT_MAJOR_VERSION, 4): QT widgets.h 定义TCP接口 #include <QTcpSocket>class MainWindow : public QMainWindow {Q_OBJECTpublic:explicit MainWindow(Q…