Git:查看分支、创建分支、合并分支

一、查看分支

查看的git命令如下:

git branch 		# 列出本地已经存在的分支,并且当前分支会用*标记
git branch -r 	# 查看远程版本库的分支列表
git branch -a 	# 查看所有分支列表(包括本地和远程,remotes/开头的表示远程分支)
git branch -v 	# 查看一个分支的最后一次提交
git branch --merged  	# 查看哪些分支已经合并到当前分支
git branch --no-merged 	# 查看所有未合并工作的分支
  1. 查看远程分支
robot@robot:~/robot_ws$ git branch -rorigin/masterorigin/robot_ros2
  1. 查看本地分支
 robot@robot:~/robot_ws$ git branchmaster
* robot_ros2

二、创建和切换分支

  1. 创建新分支
git branch 新分支名称
  1. 切换分支
git checkout 分支名称
  1. 创建分支的同时,切换到该分支上
git checkout -b 新分支名称

三、从远程仓库pull(拉取)代码到本地分支

  1. 指定远程分支,和本地分支
git pull origin 远程分支名称:本地分支名称

特别注意的一点:origin是远程仓库连接默认的对象名称,有些人可能自定义过远程仓库连接的名称,需要查看真正的名称。
例:待定。。。

  1. 如果不写本地分支名称,则默认和远程分支同名 ,命令如下:
git pull origin 远程分支名称

四、将新分支推送到远程仓库

使用git命令

git push origin 分支名称

假设我本地创建了一个名为dev的分支,远程仓库还没有这个分支,推送的命令是:

git push --set-upstream origin dev

参考:Git为什么要使用“git push –set-upstream origin ”命令

五、删除分支

  1. 删除本地分支(不能删除当前所在的分支,如果要删除,必须先切换到其他分支上)
git branch -d 分支名称

如果删除时报错:error: The branch ‘分支名称’ is not fully merged. (意思是:分支未完全合并)。解决方法是使用 -D 强制删除,代码如下:

git branch -D 分支名称
  1. 删除远程分支
git push origin :分支名称

注意:分支名称前有个冒号,分支名前的冒号代表删除

六、合并分支

  1. 假如我们现在位于分支dev上,刚开发完自己负责的功能,执行了下列命令:
git  add .
git  commit -m '某某功能已完成,提交到[分支名称]分支'
git  push -u origin 分支名称
  1. 首先切换到master分支上
git checkout master
  1. 如果是多人开发的话,需要把远程master分支上的代码pull下来
git pull origin master
  1. 然后把dev分支的代码合并到master上
git merge 分支名称

如果git merge的时候出现冲突,可以执行下面的命令取消merge:

git merge --abort:
  1. 然后查看状态
git status
  1. 最后一步,Push推送到远程仓库
git push origin master

知识点补充:

什么是分支?

  1. Git 处理分支的方式可谓是难以置信的轻量,创建新分支这一操作几乎能在瞬间完成,并且在不同分支之间的切换操作也是一样便捷。 与许多其它版本控制系统不同,Git 鼓励在工作流程中频繁地使用分支与合并,哪怕一天之内进行许多次。 理解和精通这一特性,你便会意识到 Git 是如此的强大而又独特,并且从此真正改变你的开发方式。

  2. Git保存的不是文件的变化或者差异,而是一系列不同时刻的快照 。在进行提交操作时,Git 会保存一个提交对象(commit object)。 该提交对象会包含一个指向暂存内容快照的指针,还包含了作者的姓名和邮箱,提交时输入的信息以及指向它的父对象的指针。 首次提交产生的提交对象没有父对象,普通提交操作产生的提交对象有一个父对象, 而由多个分支合并产生的提交对象有多个父对象。

  3. 分支在实际开发中有什么用呢?假设你准备开发一个新功能,但是需要两周才能完成,第一周你写了50%的代码,如果立刻提交,由于代码还没写完,不完整的代码库会导致别人不能干活了。如果等代码全部写完再一次提交,又存在丢失每天进度的巨大风险。现在有了分支,就不用怕了。你创建了一个属于你自己的分支,别人看不到,还继续在原来的分支上正常工作,而你在自己的分支上干活,想提交就提交,直到开发完毕后,再一次性合并到原来的分支上,这样既安全,又不影响别人工作。

什么是派生?

派生的意思就是分支支流,gitblit上的派生,实际上就是git的分支,主支是master

文章参考:Git详细教程(五):查看分支、创建分支、合并分支

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

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

相关文章

C#调用WebService的方法

一、前言 在日常工作中,如果涉及到与第三方进行接口对接,有的会使用WebService的方式,这篇文章主要讲解在.NET Framework中如何调用WebService。 1.创建WebService (1)新建项目——模板选择ASP.NET Web 应用程序 &a…

Qt creator ,语言家功能缺失解决方法

1、找到工具->外部->配置 2、添加目录,双击命名语言家 3、在语言家目录下,添加工具 双击重命名lupdate,即更新翻译 %{CurrentDocument:Project:QT_INSTALL_BINS}\lupdate%{CurrentDocument:Project:FilePath}%{CurrentDocument:Projec…

Taro小程序开发性能优化实践

我们团队在利用Taro进行秒送频道小程序的同时,一直在探索性能优化的最佳实践。随着需求的不断迭代,项目中的性能问题难免日积月累,逐渐暴露出来影响用户体验。适逢双十一大促,我们趁着这个机会统一进行了Taro性能优化实践&#xf…

springboot471基于协同过滤算法商品推荐系统(论文+源码)_kaic

摘 要 传统办法管理信息首先需要花费的时间比较多,其次数据出错率比较高,而且对错误的数据进行更改也比较困难,最后,检索数据费事费力。因此,在计算机上安装协同过滤算法商品推荐系统软件来发挥其高效地信息处理的作用…

进程间关系与守护进程

个人主页:C忠实粉丝 欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 C忠实粉丝 原创 进程间关系与守护进程 收录于专栏[Linux学习] 本专栏旨在分享学习Linux的一点学习笔记,欢迎大家在评论区交流讨论💌 目录 1. 进程组 什…

【NLP 16、实践 ③ 找出特定字符在字符串中的位置】

看着父亲苍老的白发和渐渐老态的面容 希望时间再慢一些 —— 24.12.19 一、定义模型 1.初始化模型 ① 初始化父类 super(TorchModel, self).__init__(): 调用父类 nn.Module 的初始化方法,确保模型能够正确初始化。 ② 创建嵌入层 self.embedding n…

javaEE-多线程编程-3

目录 java 常见的包 : 回调函数: 什么是线程: 第一个线程: 验证多线程执行: 内核: 调用sleep()方法: 执行结果分析: 线程创建的几种方式: 1.继承Thread类,重写run()方法. 2.实现Runnable接口,重写run()方法. 3.继承Thread类,重写run()方法.但使用匿名内部类 4.实现…

怎么在idea中创建springboot项目

最近想系统学习下springboot,尝试一下全栈路线 从零开始,下面将叙述下如何创建项目 环境 首先确保自己环境没问题 jdkMavenidea 创建springboot项目 1.打开idea,选择file->New->Project 2.选择Spring Initializr->设置JDK->…

设计模式期末复习

一、设计模式的概念以及分类 是一套被反复使用,多数人知晓,经过分类编目,代码设计经验的总结,描述了在软件设计的过程中不断重复发生的问题,以及该问题的解决方案,他是解决特定问题的一系列套路&#xff0c…

Github——网页版上传文件夹

第一步:创建一个新的仓库或进入已存在的仓库页面 第二步:点进对应的文件夹下,然后 点击 “Upload files” 第三步:将文件夹拖拽到上传区域 打开资源管理器,将要上传的文件夹从计算机中拖拽到上传区域。 注意&#xf…

高级的SQL查询技巧有哪些?

成长路上不孤单😊😊😊😊😊😊 【14后😊///C爱好者😊///持续分享所学😊///如有需要欢迎收藏转发///😊】 今日分享关于高级SQL查询技巧方面的相关内容&#xf…

FastStone 10.x 注册码

简介 FastStone Capture是一款经典好用的屏幕截图软件,在屏幕截图领域具有广泛的应用和众多优势。 软件基本信息 FastStone Capture体积小巧,占用内存少,这使得它在运行时不会给计算机系统带来过多的负担,即使在配置较低的电脑…

K8S详解(5万字详细教程)

目录 ​编辑 一、集群管理命令 二、命名空间 1. 获取命名空间列表 2. 创建命名空间 3. 删除命名空间 4. 查看命名空间详情 三、Pod 1. Pod概述 2. Pod相位状态 3. 管理命令 3.1 获取命名空间下容器(pod)列表 3.2 查看pod的详细信息 3.3 创建 && 运行 3.4 …

费舍尔信息矩阵全面讲述

费舍尔信息矩阵(Fisher Information Matrix) 费舍尔信息矩阵是统计学中一个非常重要的概念,尤其在参数估计、最大似然估计(MLE)和贝叶斯推断中具有广泛的应用。它反映了参数估计的不确定性程度,也可以用来…

Zookeeper的监听机制

Zookeeper的监听机制是其实现分布式协调服务的一个核心功能。 它允许客户端注册Watcher(观察者)来监听特定的Znode(节点)上的事件,当Znode的状态发生变化时,Zookeeper会向注册了Watcher的客户端发送通知。…

[原创](Modern C++)现代C++的第三方库的导入方式: 例如Visual Studio 2022导入GSL 4.1.0

[简介] 常用网名: 猪头三 出生日期: 1981.XX.XX 企鹅交流: 643439947 个人网站: 80x86汇编小站 编程生涯: 2001年~至今[共23年] 职业生涯: 21年 开发语言: C/C、80x86ASM、PHP、Perl、Objective-C、Object Pascal、C#、Python 开发工具: Visual Studio、Delphi、XCode、Eclipse…

2002 - Can‘t connect to server on ‘192.168.1.XX‘ (36)

参考:2002 - Can‘t connect to server on ‘192.168.1.XX‘ (36) ubantu20.04,mysql5.7.13 navicat 远程连接数据库报错 2002 - Can’t connect to server on ‘192.168.1.61’ (36) 一、查看数据库服务是否有启动,发现有启动 systemctl status mysql…

漏洞检测工具:允许TRACE方法漏洞

允许TRACE方法漏洞 漏洞定义 TRACE方法是HTTP协议中定义的一种调试方法,主要用于测试或诊断Web服务器连接。Web服务器在配置时未正确禁用HTTP TRACE方法,从而允许客户端向服务器发送TRACE请求,并导致服务器返回可能包含敏感信息的响应。 漏…

linux socket编程之udp_dict_serve服务端--引入配置文件

注意:本篇博客只是对上一篇博客功能的增加 1.创建配置文件(翻译) Dict.txt apple: 苹果 banana: 香蕉 cat: 猫 dog: 狗 book: 书 pen: 笔 happy: 快乐的 sad: 悲伤的 run: 跑 jump: 跳 teacher: 老师 student: 学生 car: 汽车 bus: 公交车 love: 爱 hate: 恨 hell…

ESP32S3 使用LVGL驱动LCD屏(ST7789主控)

ESP32S3 使用LVGL驱动LCD屏(ST7789主控) 目录 1 分析原理图 2 驱动、点亮LCD(ST7789) 2.1 在工程中添加目录、文件 2.2 添加esp_lvgl_port组件 2.3 对工程进行必要的配置 2.4 编写必要代码 3 烧录、验证 1 分析原理图 要使用SOC驱动LCD屏&#…