当前位置: 首页 > news >正文

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.lryc.cn/news/508794.html

相关文章:

  • 联合目标检测与图像分类提升数据不平衡场景下的准确率
  • Git的简介
  • 麒麟操作系统服务架构保姆级教程(四)NGINX中间件
  • Glide 自定义圆角、铺满FitXY
  • 蓝牙协议——音乐启停控制
  • Krita安装krita-ai-diffusion工具搭建comfyui报错没有ComfyUI_IPAdapter_plus解决办法
  • 四相机设计实现全向视觉感知的开源空中机器人无人机
  • LightGBM分类算法在医疗数据挖掘中的深度探索与应用创新(上)
  • JVM(Java虚拟机)的组成部分详解
  • jsp中的四个域对象(Spring MVC)
  • 计算机基础知识复习12.24
  • 如何使用vscode解决git冲突
  • 告别卡顿:CasaOS轻NAS设备安装Gopeed打造高效下载环境
  • Java 重写(Override)与重载(Overload)
  • HDFS与HBase有什么关系?
  • CentOS7下的vsftpd服务器和客户端
  • 全网最详细Gradio教程系列10——Blocks:底层区块类(下)
  • 嵌入式设备常用性能和内存调试指令
  • 数据库系统原理:数据恢复与备份策略
  • C++软件设计模式之装饰器模式
  • fpga系列 HDL:Quartus II PLL (Phase-Locked Loop) IP核 (Quartus II 18.0)
  • Spring AOP 中记录日志
  • udp tcp协议
  • C语言结构体详细讲解
  • 公交车信息管理系统:实现交通数据的智能化处理
  • 在 Windows 下生成 .tgz 文件的方法
  • 编程式浪漫,100款圣诞树代码分享
  • Nacos的下载和启动(如何快速稳定下载在github中)
  • python基础知识(六)
  • 神经网络-LeNet