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

一、查看分支

查看的git命令如下:

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

二、创建和切换分支

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

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

  1. 指定远程分支,和本地分支
powershell 复制代码
git pull origin 远程分支名称:本地分支名称

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

例:待定。。。

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

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

使用git命令

powershell 复制代码
git push origin 分支名称

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

powershell 复制代码
git push --set-upstream origin dev

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

五、删除分支

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

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

powershell 复制代码
git branch -D 分支名称
  1. 删除远程分支
powershell 复制代码
git push origin :分支名称

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

六、合并分支

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

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

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

知识点补充:

什么是分支?

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

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

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

什么是派生?

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

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

相关推荐
Franklin7 小时前
VS 版本更新git安全保护问题的解决
git
我是一只代码狗11 小时前
idea中合并git分支
git
我是一只代码狗11 小时前
idea中使用git
git·gitee·github
恋喵大鲤鱼11 小时前
git restore
git·git restore
李少兄12 小时前
Git Commit Message写错后如何修改?已Push的提交如何安全修复?
git·安全
Fireworkitte12 小时前
git stash
git
pe7er1 天前
git submodule简易指南
git
xiaocainiao8811 天前
Python 实战:构建 Git 自动化助手
git·python·自动化
Casia_Dominic2 天前
【三维重建工具】NeRFStudio、3D GaussianSplatting、Colmap安装与使用指南
git·3d·github·点云