git分支详解——记住这些指令能帮助你解决大部分git的分支问题

news2024/11/24 6:00:39

Github 之 分支 branch 操作之 查看分支/创建分支/切换分支/提交分支/删除分支/合并分支 等操作
一、简单介绍
二、查看分支
1、查看本地所有分支:git branch
2、查看远程有哪些分支:git branch -r
3、查看所有分支(本地和远程的):git branch -a
三、创建分支
1、只创建分支(不切换分支):git branch [branch name]
2、创建并切换分支:git chechout -b [branch name]
四、切换分支
1、切换本地分支:git chechout [branch name]
五、提交分支
1、提交分支到远程:git push origin [branch name]
六、删除分支
1、删除本地分支:git branch -d [branch name]
2、删除远程分支:git push origin :[branch name]
七、合并分支
1、(必要的话)先把分支的修改提交到远程服务器
2、然后再切换到master分支上
3、把远程master上的代码 pull 下来((多人开发)同步下修改,避免可能的代码冲突)
4、把分支的代码合并到 master上
5、简单查看下合并状态是否修改是否一致,把代码推到远程 master
八、拉取分支

一、简单介绍Git(读音为/gɪt/。)是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。 [1] Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。
本节介绍,Git 对 分支 branch 管理的一些相关操作。

1、查看分支,这三个指令相信自己没有理由不会
(1)查看本地所有分支:git branch
(2)查看远程有哪些分支:git branch -r
(3)查看所有分支(本地和远程的):git branch -a
(4)查看本地(或者远端)分支及追踪的分支:git branch -vv
在这里插入图片描述
在这里插入图片描述
看到这里,可能有人就有疑问了,那个remotes/origin/HEAD -> origin/master是什么?
答疑:

origin/HEAD就像一个指针,表示默认分支,你的remotes/origin/HEAD ->
origin/master表示它指向origin/master,即origin/master是默认分支。
具体HEAD、origin是什么参看我前面的系列文章。

有人此时会有疑问,删掉remotes/origin/HEAD -> origin/master可不可以?
答案是当然是可以的:
删除指令:git remote set-head origin -d

使用git branch -vv组合-r、-a指令操作图示
在这里插入图片描述

疑问: 图示中的efcd4a2是什么
答疑:它是commit ID值,每次我们往本地库提交一次代码时,git都会给我们自动生成一串字符,这个字符就是每次commit的SHA1值,可以根据 git log 看到。
git截取每次commit的SHA1值的前6位字符构成commit ID的值,主要用于记录每一次提交的信息,这个commit ID值很重要,当我们代码提交错误想回滚代码时(或者说想查看历史某次提交的记录时),此时就可以根据commit ID值寻找了,具体commit ID用法查看后续的git系列文章。

2、创建分支,这三个指令也很重要哦
(1)只创建分支(不切换分支):git branch [branch name]
(2)创建并切换分支:git checkout -b [branch name]
(3)拉取远程分支到本地创建,并且二者关联在一起:git checkout -b 本地分支名 origin/远程分支名

git branch指令操作图示
在这里插入图片描述
在这里插入图片描述

疑问:如何将刚创建好的本地分支推送到远端呢
答疑:提交分支,具体如何提交分支详细请看后续

git checkout -b [branch name]指令操作图示
在这里插入图片描述
(注意:* 号为当前所在分支)

git checkout -b 本地分支名 origin/远程分支名 指令操作图示
在这里插入图片描述

疑问:有人会提出,该组合指令中因为有-b的缘故所以才在最后切换到新创建的分支,这点儿说的的确不错,如果去除-b执行git checkout
本地分支名 origin/远程分支名 指令可以嘛 答疑:答案是不可以的,具体答案看图示
在这里插入图片描述

3、切换分支
(1)切换本地分支:git checkout [branch name]

git checkout [branch name] 指令操作图示
在这里插入图片描述

疑问:切换到远程分支可以嘛
答疑:不可以,具体看图示
在这里插入图片描述
在这里插入图片描述
解析:(1) HEAD类似于链表的头指针,也可以理解为栈顶指针,是指向你本地branch的最新记录,需要自己去理解。
(2)、没有切到test是因为你的命令不正确,并不是切到test的命令。
从brach可知,你本地已经有了test,如果要切到test,命令应该是:git checkout test。 而git checkout origin/test意思是将本地git的头指针指向origin库的test分支,而origin不是你本地的,只能指向它的id,并不能切过去。

4、修改分支
git支持修改分支的名称,可以修改本地分支名,也可以修改远程分支名。
当修改本地分支(远端没有该分支)
(1)执行 git branch -m <old_branch> <new_branch> 指令即可
在这里插入图片描述
(2)当修改远端分支
具体修改的操作步骤分为三步。
第一步:修改本地分支
git branch -m <old_branch> <new_branch>
第二步:删除远程分支
git push origin :<old_branch>
第三步:切换到本地新分支,将本地新分支推到远程
git checkout <new_branch>
git push --set-upstream origin <new_branch>

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
知识角落:

-m --move:表示移动或重命名,这里使用-M则表示强制重命名。

5、删除分支
(1)删除本地分支:git branch -d [branch name]
注意:1、不能删除当前正所处的分支;2、不能删除不存在的分支;
(2)删除远程分支:git push origin :[branch name]
或者 git push origin --delete [branchname]
注意:假设要删除[branchname]的远程分支,我们需要先把分支切换到其他分支,因为所在的当前分支[branchname]下,是不能删除它的。

git branch -d [branch name] 指令操作图示
在这里插入图片描述
可以使用git branch -d [branch name]… 指令同时删除多个分支
在这里插入图片描述

git push origin :[branch name] 指令操作图示
在这里插入图片描述
在这里插入图片描述
git push origin --delete [branchname] 指令操作图示
在这里插入图片描述
注意:
在这里插入图片描述

6、拉取分支
我们在远端创建一个分支zss,然后如何将它拉取到本地呢?看接下来的操作
总共三种方法从远程仓库拉取指定的某一个分支
(1)git clone -b 本地新分支名称 xxx.git(重要)
注意:用git clone -b <分支名称> 拉取指定的某一个分支时,我们本地是没有克隆url对应的远程仓库代码,也就是说进入某个路径的文件夹后直接使用该命令去拉取指定分支,而不是先执行git clone 将远程代码库克隆到本地以后进入项目目录再执行该命令去拉取指定分支。否则,拉取下来的还是master主分支。
即:使用git clone的时候必须在一个空文件夹里(或者文件夹里没有克隆过该项目)才能使用
(2)git fetch 命令获取(重要)
git fetch命令从远程仓库拉取指定某一个分支时,和上面的git clone -b命令时不一样。使用git fetch命令时,需要先将远程的仓库克隆到本地,然后在执行git fetch命令。该命令执行完以后还是处在master主分支的,如果进去目录没有发现想要拉取的仓库文件。此时并不是git fetch命令没有执行,而是我们还没有切换到我们想要拉取的分支上,需要我们执行git checkout命令切换到我们想要拉取的分支上。
注意:使用该命令时,在本地需要切换到拉取的远端分支后,才能通过git branch指令查看到
(3)git checkout -b xxx 命令获取(了解)
第三种获取远程仓库某一个指定分支的方法和第二种方法有点类似,都是将远程仓库克隆到本地仓库,然后执行git checkout -b <本地分支名称> origin/<远程分支名称>
git clone -b 本地新分支名称 xxx.git 指令操作图示
在这里插入图片描述
git fetch 指令操作图示
在这里插入图片描述
在这里插入图片描述
git checkout -b xxx 指令操作图示
在这里插入图片描述

7、提交分支
git push -u origin [branch name]
8、合并分支

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

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

相关文章

Egg 1. 快速开始 Quick Start 1.3 一步步 Step by Step 1.3.3 添加静态资源 1.3.4 添加渲染模板

Egg Egg 本文仅用于学习记录&#xff0c;不存在任何商业用途&#xff0c;如侵删 文章目录Egg1. 快速开始 Quick Start1.3 一步步 Step by Step1.3.3 添加静态资源1.3.4 添加渲染模板1. 快速开始 Quick Start 1.3 一步步 Step by Step 1.3.3 添加静态资源 Egg 有一个名为stat…

【K8S系列】第十讲:kubectl 命令大全

目录 序言 1.基本介绍 1.1 命令格式介绍 2 基础命令 2.1 create 2.2 delete 2.2.1 根据yaml删除资源 2.2.1 根据名称删除资源 2.3 get 2.3.1查看pod列表 2.3.2 查看node 2.3.3 查看svc 2.3.4 查看all 2.3.5 查看ns 2.3.4 查看deploy 2.3 run 2.4 explain 2.…

基于PHP+MySQL珠宝销售网站的设计与开发

大多数时候珠宝是一种身份和高贵的象征,一个价值不菲的珠宝会给人一种高贵的感觉,同时珠光宝气也是人们非常喜欢的一种氛围,尤其是对女生来说,那种金光闪闪的东西总是会在无形中吸引她们的注意力,但是很多时候人们只能到商场或者专卖店购买珠宝,这种珠宝一方面鱼龙混杂,以次充好…

tinymce富文本编辑器的使用

tinymce富文本编辑器的使用 1、基本介绍 tinymce富文本官网&#xff1a;https://www.tiny.cloud/ 中文文档&#xff1a;http://tinymce.ax-z.cn/ tinymce-npm地址&#xff1a;https://www.npmjs.com/package/tinymce tinymce英文文档-示例地址&#xff1a;https://www.tin…

沟通管理风险管理采购管理@相关方管理

沟通管理目录概述需求&#xff1a;设计思路实现思路分析1.沟通管理绩效报告提供资源2.管理沟通3.监督沟通风险管理规划风险管理识别风险定性风险分析&#xff1a;定量分析风险规划风险应对实施分享应对监督风险采购管理&#xff1a;12.1 规划采购的管理12.2 实施采购控制采购相…

Bugku CTF杂项0和1的故事——01字符串生成二维码

个人说明 备赛半月后&#xff0c;因大多都是Web方向&#xff0c;于是自己将主要目标放在Misc和CryPto上&#xff0c;因为较之逆向和二进制更容易上手。 题目链接 1和0的故事 - Bugku CTF 题目简介如上&#xff0c;打开后是25X25的01字符串&#xff0c;先讲解正确高效做法&a…

SpringBoot 自动装配原理

什么是自动装配 springboot 定义一套接口规范&#xff0c;这套规范规定&#xff1a;springboot 在启动时会扫描外部引用 jar 包中的 META-INF/spring.factories 文件&#xff0c;将文件中配置的类型信息加载到 spring 容器&#xff0c;并执行类中定义的各种操作对于外部 jar 来…

Java并发编程—java内存模型1

文章目录Java内存模型的基础并发编程模型的两个关键性问题1、线程之间如何通信&#xff1f;(问题1)2、进程之间如何通信&#xff1f;(问题2)线程间通信机制&#xff1a;共享内存、消息传递1、共享内存2、消息传递java内存模型抽象结构指令重排序并发编程模型的分类happens-befo…

资料库的webrtc文件传输

一、一个看似简单的事情往往不简单 一个简单的事情往往会倾注你的心血&#xff0c;也许你看到很简单往往其实没那么简单&#xff1b;其实想想今年业余时间的大把代码&#xff0c;真正能成品的好像并不多。 马上年底了&#xff0c;写下这篇文章。每一行程序就像写小说一样&…

Egg 1. 快速开始 Quick Start 1.3 一步步 Step by Step 1.3.1 初始化 1.3.2 创建控制器

Egg Egg 本文仅用于学习记录&#xff0c;不存在任何商业用途&#xff0c;如侵删 文章目录Egg1. 快速开始 Quick Start1.3 一步步 Step by Step1.3.1 初始化1.3.2 创建控制器1. 快速开始 Quick Start 1.3 一步步 Step by Step 之前我们直接使用 npm init egg&#xff0c;选择了…

# 智慧社区管理系统-基础管理-04业主管理

一后端 1entity package com.woniu.community.entity;import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor;Data AllArgsConstructor NoArgsConstructor public class Owner {private int id;private String userName;private String …

Linux I2C驱动框架, 调试神奇I2C-Tools介绍

1. IIC协议 2. Linux的I2C体系结构分为3个组成部分&#xff1a; I2C核心( i2c-core.c )&#xff1a;   I2C核心提供了I2C总线驱动和设备驱动的注册、注销方法、I2C通信方法(”algorithm”)、与具体适配器无关的代码、探测设备、检测设备地址的上层代码等。 …

在线PDF查看器和PDF编辑器:GrapeCity Documents PDF (GcPdf)

跨平台 JavaScript PDF 查看器 使用我们的 JavaScript PDF 查看器在网络上阅读和编辑 PDF。跨浏览器和框架打开和打印。GrapeCity Documents PDF (GcPdf) 全功能的 JavaScript PDF 查看器和 PDF 编辑器 适用于所有现代浏览器和框架&#xff0c;包括 Edge、Chrome、Firefox、Op…

UML类图中 前缀符号 + - # ~ 的含义

UML类图中有各种符号&#xff0c;新手看着一脸懵逼&#xff0c;今天我就来讲一下各个符号到底是啥意思。 其实这些符号都是在描述类属性的可见性&#xff1a; UML中&#xff0c;可见性分为4级 1、public public 公用的用 前缀表示 &#xff0c;该属性对所有类可见 2、prote…

算法篇-----回溯1

文章目录什么是回溯呢&#xff1f;力扣690-----员工的重要性&#xff08;中等&#xff09;力扣733-----图像渲染&#xff08;简单&#xff09;力扣463-----岛屿的周长&#xff08;简单)力扣130------被围绕的区域&#xff08;中等&#xff09;力扣17--------电话号码的组合 &am…

kafka-consumer-offset位移

目录 1 offset的默认维护位置 1.1 消费offset案例 2 自动提交offset 3 手动提交offset 3.1 原理 3.2 代码示例 3.2.1 同步提交 3.2.2 异步提交(生产常用) 4 指定offset消费 5 指定时间消费 6 漏消费和重复消费分析 6.1 重复消费 6.2 漏消费 6.3 消费者事务 7 数据…

高通开发系列 - ALSA声卡驱动中tinymix返回时间过慢

By: fulinux E-mail: fulinux@sina.com Blog: https://blog.csdn.net/fulinus 喜欢的盆友欢迎点赞和订阅! 你的喜欢就是我写作的动力! 目录 问题背景问题分析验证第一个猜测验证第二个猜测问题原因解决方案问题背景 我们一个高通平台上出现一个问题: tingmix命令需要几秒钟…

一文带你深入理解Linux端口重用这一特性

【好文推荐】 需要多久才能看完linux内核源码&#xff1f; 概述Linux内核驱动之GPIO子系统API接口 一篇长文叙述Linux内核虚拟地址空间的基本概括 轻松学会Linux下查看内存频率,内核函数,cpu频率 大家好&#xff0c;我是Linux吴彦祖&#xff01; 开篇我先考大家一个小问题&…

Golang Map 基本原理

Go 语言中的 map 即哈希表。哈希表把元素分到多个桶里&#xff0c;每个桶里最多放8个元素。在访问元素时&#xff0c;首先用哈希算法根据 key 和哈希表种子获得哈希值(暂将其命名为 h)&#xff0c;然后利用 h 的低 bbb 位得到桶的序号。其中桶的个数为 2b2^b2b 个&#xff0c;是…

乐趣国学—品读“富润屋,德润身。”中的智慧

✅作者简介&#xff1a;热爱国学的Java后端开发者&#xff0c;修心和技术同步精进。 &#x1f34e;个人主页&#xff1a;Java Fans博客 &#x1f34a;个人信条&#xff1a;不迁怒&#xff0c;不贰过。小知识&#xff0c;大智慧。 ✨当前专栏&#xff1a;国学周更-心性养成之路 …