图解Git对于分支的操作

简介: 图解Git对于分支的操作

一般情况下我们的git仓库会有多个分支,主分支就是master,在我看来大多数时候其余分支是用于保护主分支不被无意破坏。

1,什么是分支

我们知道,git每执行一次commit命令,就会把当前文件状态保存为快照存在仓库中。

分支就是为了将修改记录的整体流程分叉保存,每个分支不受其他分支的影响。

例如某个仓库进行了3次commit操作,可能如下图所示:

网络异常,图片无法展示
|

图中黑色矩形框代表我们每一次进行的commit生成的快照,蓝色圆角矩形框代表分支,紫色椭圆框代表头指针

可见这个仓库只有一个master分支,头指针指向我们当前正在操作的分支。

2,新建分支

有两个命令实现新建分支。

新建分支但仍然使用当前分支:

git branch 新分支名

新建分支并切换到新分支:

git checkout -b 新分支名

例如新建分支dev

git branch dev

那么上述仓库就会变成这样:

网络异常,图片无法展示
|

新分支一般会以当前最新快照为起点建立。

3,切换分支

上述的checkout -b 分支名可以直接新建分支并切换至新分支,当然直接切换分支也很简单:

git checkout 分支名

使用checkout命令即可。

还是上述仓库,切换到dev分支:

网络异常,图片无法展示
|

这样当前分支切换到了dev

接下来我们进行开发并做了一次提交,又会变成什么样呢?如下图:

网络异常,图片无法展示
|

4,融合分支

可以使用下列命令将指定分支融合至当前分支

git merge 指定融合分支

我们在dev分支开发完毕了一个版本,想将其融合到master,那就先切换至master分支再使用merge命令进行融合:

git checkout master
git merge dev

上述仓库融合后如下:

网络异常,图片无法展示
|

假设你的仓库有对应的远程仓库,将dev融合到master之后,还需要将master也推送上去哦!

git push xxx master

xxx表示你的远程仓库别名。

5,查看当前仓库分支

这个就简单了。

查看当前仓库本地分支:

git branch

查看当前仓库远程分支:

git branch -r

查看当前仓库所有分支(本地+远程):

git branch -a

6,将本地分支和远程分支建立追踪关系

我们git clone下来的仓库默认只克隆了其中的master分支。不过要对远程仓库已有的dev分支进行开发怎么办呢?方法其实很多,下面来一一说明。

(1) 克隆时指定分支

git clone命令后面加上-b参数指定分支即可,例如克隆某仓库dev分支:

git clone -b dev 仓库地址

(2) 新建本地分支dev并和远程仓库的dev分支建立追踪关系

例如我刚克隆下来的一个仓库,首先查看所有分支:

git branch -a

网络异常,图片无法展示
|

可见本地只有一个master分支,但是远程分支除了master还有一个dev分支。

通过git branch命令新建本地dev分支并和远程dev分支建立追踪关系:

git branch dev
git branch --set-upstream-to=remotes/origin/dev dev

重点是这个命令将本地分支和远程分支建立追踪关系:

git branch --set-upstream-to=远程分支名 本地分支名

然后再使用checkout命令切换至dev分支即可开始开发,然后git push xxx devdev分支变动提交至远程仓库,xxx更换为自己的仓库别名。

其实还有一个更加简单的方法,使用checkout命令即可新建一个本地分支并切换至新建的分支,同时将这个分支和指定远程分支建立追踪关系:

git checkout -b 本地分支名 远程分支名

例如上述仓库一克隆下来我们其实只要执行这一句:

git checkout -b dev remotes/origin/dev

这个命令会直接实现在本地建立了dev分支并切换上去,并和远程dev分支建立追踪关系,一步到位。

可见git branch --set-upstream-to=命令用于手动建立现有本地分支和远程分支追踪关系,而git checkout -b命令则是新建、切换、追踪一步到位。这两个命令大家视情况使用。

还有一种情况是,本地新建了一个dev分支,但是远程仓库没有这个dev分支,怎么办呢?其实直接把dev分支push上去即可,本地推送的分支若远程仓库中不存在,远程仓库会自动创建

7,删除分支

删除分支其实很简单,不过是很危险的操作,请谨慎使用!

删除本地分支:

git branch -d 分支名

删除远程分支:

git branch -dr 远程分支名


相关文章
|
2月前
|
开发工具 git
图解Git——分支的新建与合并《Pro Git》
在Git开发中,新建与合并分支是常见的操作。以实际开发为例:为实现新需求创建分支`iss53`进行开发;遇紧急Bug时,切换至线上分支创建`hotfix`修复并合并回线上分支,再切换回`iss53`继续工作。完成`iss53`后,切换到`master`合并。若出现冲突,使用`git status`查看,手动编辑解决冲突后标记为已解决并提交。图形化工具如`git mergetool`也可辅助解决冲突。
55 9
|
2月前
|
开发工具 git 开发者
图解Git——分支简介《Pro Git》
Git 分支是其核心特性之一,允许开发者从主开发线分离工作,避免干扰主线。传统版本控制系统创建分支效率低,而Git的分支创建和切换非常轻量高效。
101 9
|
20天前
|
开发工具 git 开发者
vscode+git解决远程分支合并冲突
通过这些详细步骤,您可以掌握如何使用VSCode和Git高效地解决远程分支合并冲突,提高开发效率和代码质量。希望这些内容对您的学习和工作有所帮助。
181 86
|
2月前
|
存储 项目管理 开发工具
图解Git——分支开发工作流《Pro Git》
分支开发工作流利用Git的分支功能,支持灵活的项目管理。长期分支如`master`和`develop`分别保存稳定和开发中的代码;短期主题分支用于开发单一特性或修复问题,完成后合并到主分支。此模式确保代码稳定性,支持并行开发、便于审查和灵活调整。建议维护明确的长期分支,保持主题分支短小精悍,并定期清理无用分支。配置上可保护关键分支,遵循命名规范。
69 7
|
2月前
|
存储 缓存 Java
图解Git——远程分支《Pro Git》
远程分支是 Git 中用于管理分布式协作的关键概念。远程引用指向远程仓库中的分支和标签,常用 `git ls-remote` 或 `git remote show` 查看。日常开发中,通常使用远程跟踪分支(如 `origin/main`)与远程分支交互,简化远程仓库状态的管理和使用。远程跟踪分支记录远程分支的状态,但本身只读。
37 6
|
5月前
|
开发工具 git
git学习四:常用命令总结,包括创建基本命令,分支操作,合并命令,压缩命令,回溯历史命令,拉取命令
这篇文章是关于Git常用命令的总结,包括初始化配置、基本提交、分支操作、合并、压缩历史、推送和拉取远程仓库等操作的详细说明。
184 1
git学习四:常用命令总结,包括创建基本命令,分支操作,合并命令,压缩命令,回溯历史命令,拉取命令
|
5月前
|
开发工具 git 开发者
关于git 解决分支冲突问题(具体操作,包含截图,教你一步一步解决冲突问题)
本文通过具体操作和截图,详细讲解了如何在Git中解决分支冲突问题,包括如何识别冲突、手动解决冲突代码、提交合并后的代码,以及推送到远程分支。
867 3
关于git 解决分支冲突问题(具体操作,包含截图,教你一步一步解决冲突问题)
|
6月前
|
缓存 开发工具 git
Git创建分支以及合并分支
在Git中,创建分支使用`git branch [branch_name]`,切换分支使用`git checkout [branch_name]`。修改文件后,通过`git add [file]`添加到暂存区,然后`git commit`提交到本地仓库。如果是新建分支的第一次推送,使用`git push origin [branch_name]`推送到远程仓库,之后可以简化为`git push`。合并分支时,使用`git merge [branch_name]`将指定分支的更改合并到当前分支。
152 2
Git创建分支以及合并分支
|
5月前
|
开发工具 git
Git分支使用总结
Git分支使用总结
75 1
|
6月前
|
测试技术 开发工具 git
掌握 Git 分支策略:提升你的版本控制技能
在现代软件开发中,版本控制至关重要,Git 作为最流行的分布式版本控制系统,其分支管理策略对于高效协作和代码维护尤为重要。本文介绍了几种常用的 Git 分支策略,包括主线开发模型、功能分支模型、Gitflow 工作流和 Forking 工作流,并探讨了如何根据项目需求选择合适的分支模型。通过保持 `master` 分支稳定、及时合并清理分支、使用命名规范、利用 Pull Request 进行代码审查及自动化测试等最佳实践,可以显著提升团队协作效率和软件质量。掌握这些策略将帮助开发者更好地管理代码库,加快开发流程。

相关实验场景

更多