Git的使用(4) —— 分支的概念和使用
1. 概念
在SVN中,分支并不是很便于使用。但是在Git中,分支就变成了特别好用的功能呢,受到大多数使用者的青睐。
分支中有几个概念:
(1) 分支:分支就是每一次提交创建的点连接成的线。
(2) master分支:版本库创建后,会生成一个默认的分支,这个分支叫主分支,也叫master分支,所有的分支都围绕这根分支做扩展。
(3) 子分支:在master分支的基础上创建的分支,子分支的发展与主分支独立。
(4) 指针:每一根分支中都会有一个指向这个分支的指针,这个指针指向了当前版本库中使用的提交版本,也就是指向分支线上指定的点。master分支就有一个master指针,其他分支的指针类似。
(5) HEAD指针:指向当前版本库使用的分支指针。
2. 添加点

在主分支的每一次提交就会使HEAD和master往前移动一次。
3. 添加分支

添加分支实际上对工作区没有任何变化,只是在版本库记录中添加了一个新的指针指向了分支的一个点。
因为只是创建分支,所以HEAD指针还是指向master分支指针。
添加分支的方法:
右击工作区空白处,在TortoiseGit中选择"创建分支"。

填写分支名,选择从何处创建子分支,填写描述信息,最后点击确定就可以创建一个新的子分支。
4. 切换分支

切换分支,实际上是切换提交点的位置,也切换了工作区中的文件。如果再次提交则会在新的分支上增加新的记录,而原本的分支则不受影响。

切换分支操作:
右击工作区空白位置,在TortoiseGit中选择"切换/检出"。
选择合适的分支后,点击确定,即可切换分支。

可以使用右击工作区空白处,在TortoiseGit中选择"版本分支图",查看当前所有的分支情况。红色的是正在使用的分支,最下面的英文字串是每一个点的散列值,来确定唯一的点。

5. 合并分支

当子分支需要完成的进度结束后,便可以将子分支合并到主分支上,也就是将两个分支合的内容并在主分支上形成一个新的点(记录)。注意:要合并到哪个分支上,就先切换到那个分支上,如图,要把sub合并到master上,就要先切换到master分支,然后进行合并操作。
子分支的指针停留在合并前的最后一个点上,如果还想继续在子分支上进行开发,还可以切换到子分支上继续开发,择机合并。

合并的操作:
右击工作区空白位置,在TortoiseGit中选择"合并"。
选择要被合并的分支,点击确定,即可合并。

6. 删除分支

删除分支仅仅是将分支指针删除,并没有删除掉所有的文件,通过散列值还可以恢复分支。
注意:恢复分支操作较为复杂,删除操作务必谨慎操作。
删除分支操作:
右击工作区空白位置,在TortoiseGit中选择"浏览引用"。
右击需要删除的分支,点击"删除分支",提示是否删除分支,点击"是",即可删除分支。
Git的使用(4) —— 分支的概念和使用的更多相关文章
- 11.Git分支-远程跟踪分支的概念、多个远程仓库的使用
1.远程跟踪分支的概念 远程引用是对远程仓库的引用,包括分支.标签等等. 1.可以通过 git ls-remote <remote> 来获得远程引用的完整列表 2.git remote ...
- git分支合并概念
git merge命令用于合并指定分支到当前分支. git merge命令用于合并指定分支到当前分支. git merge命令用于合并指定分支到当前分支. 创建与合并分支 阅读: 931277 在版本 ...
- ###Git 基础图解、分支图解、全面教程、常用命令###
一.Git 基础图解 转自:http://www.cnblogs.com/yaozhongxiao/p/3811130.html Git 图解剖析 git中文件内容并没有真正存储在索引(.git/in ...
- [Git]05 如何使用分支
作者:Younger Liu, 本作品采用知识共享署名-非商业性使用-相同方式共享 3.0 未本地化版本许可协议进行许可. 几乎每一种版本控制系统都以某种形式支持分支.使用分支意味着你可以从开发 ...
- git 入门教程之分支管理
背景 什么是分支?简单地说,分支就是两个相对独立的时间线,正常情况下,独立的时间线永远不会有交集,彼此不知道对方的存在,只有特定情况下,两条时间线才会相遇,因为相遇,所以相知,因为相知,所以改变! 正 ...
- [Git01]Pro Git 第三章 分支 读书笔记
[git]分支 Git 的分支模型称为“必杀技特性”,而正是因为它,将 Git 从版本控制系统家族里区分出来. Git 有何特别之处呢?Git 的分支可谓是难以置信的轻量级,它的新建操作几乎可以在 ...
- Git详解之分支使用
前言 几乎每一种版本控制系统都以某种形式支持分支.使用分支意味着你可以从开发主线上分离开来,然后在不影响主线的同时继续工作.在很多版本控制系统中,这是个昂贵的过程,常常需要创建一个源代码目录的完整副本 ...
- VS2013中使用git发布解决方案master分支的时候出现错误
VS2013GIT基础用法请自行参考:不会Git命令,照样玩转Git 环境:VS2013+ 码云错误描述:在VS2013中使用git发布解决方案master分支的时候出现“无法将本地分支 master ...
- git学习4:分支管理
每次提交,Git都把它们串成一条时间线,这条时间线就是一个分支.截止到目前,只有一条时间线,这个分支叫主分支,即master分支,HEAD指向master,master指向提交,所以,HEAD指向的就 ...
随机推荐
- Eclipse - servlet显示无法导入javax.servlet包问题的解决方案
项目名-->右键 Property-->选择 Java Build Path-->选择 Add External JARs-->选择 把servlet-api.jar的路径输入 ...
- ANE打包工具使用视频教程 -- 梦宇技术 @极客学院
来源:http://xtiqin.blog.163.com/blog/static/17017217920133584934827/ ANE打包工具使用视频教程 2013-04-05 08:49:34 ...
- c#读写apk的 comment
写入: ZipFile zipFile = new ZipFile("C:\\Users\\Administrator\\Desktop\\2.apk"); zipFile.Beg ...
- vuex页面刷新数据丢失的解决办法
在vue项目中用vuex来做全局的状态管理, 发现当刷新网页后,保存在vuex实例store里的数据会丢失. 原因: 因为store里的数据是保存在运行内存中的,当页面刷新时,页面会重新加载vue实例 ...
- 小程序 wx.getSystemInfoSync 获取 windowHeight 不准确的问题
如果本文对你有用,请爱心点个赞,提高排名,帮助更多的人.谢谢大家!❤ 如果解决不了,可以在文末进群交流. wx.getSystemInfo(OBJECT) 获取系统信息. OBJECT参数说明: 参数 ...
- php初识2
php概述 什么是php,PHP语言的优势,PHP5的新特性,PHP的发展趋势,PHP的应用领域. PHP是超文本预处理器,是一种服务器端,跨平台,HTML嵌入式的脚本语言,具有c语言,Java语言, ...
- ssh本机失败(ssh: connect to host localhost port 22: Connection refused)
ssh本机失败(ssh: connect to host localhost port 22: Connection refused) 一. 问题描述 之前一直在服务上使用宝塔面板, 今天突发奇想, ...
- yarn cluster和yarn client模式区别——yarn-cluster适用于生产环境,结果存HDFS;而yarn-client适用于交互和调试,也就是希望快速地看到application的输出
Yarn-cluster VS Yarn-client 从广义上讲,yarn-cluster适用于生产环境:而yarn-client适用于交互和调试,也就是希望快速地看到application的输出. ...
- SpringDataRedis的简单入门
Jedis Jedis是Redis官方推出的一款面向java的客户端,提供了很多接口供java语言调用,可以在Redis官网下载,当然还有一些开源爱好者提供的客户端,如Jredis SRP等,推荐使用 ...
- robot framework 笔记(一)
背景: 平时使用rf时会用到一些方法,长时间不用就会忘记,本文用来记录当做自己的小笔记 内容持续更新中········ 一.robot framework 大小写转换 1.转换小写: ${low} E ...