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指向的就 ...
随机推荐
- 那些年伴我一起成长的SAP装备
今天这篇文章无关技术,我们来聊聊SAP装备,即打上了SAP logo的那些物品. 但凡在SAP圈子工作过一段时间的从业者们,手上或多或少都拥有一些此类装备.Jerry当然也不例外,这些装备无论物品本身 ...
- Xen虚拟化技术详解---第四章----申请超级调用
内核驱动程序privcmd负责将位于GuestOS用户空间的超级调用请求传递到GuestOS内核中,与Linux系统的内核驱动程序相同,该操作要在系统调用ioctl()的帮助下完成. 1.关于ioct ...
- Python_模块的定义与使用
1.模块的定义: 1.1 标准格式: import 模块名 模块名.函数名(实参列表) 1.2 特殊格式: from 模块名 import 函数名1,函数名2... 函数名(实参列表) 2.模块的使用 ...
- Python_Day2_共享你的代码
一.编写简单的函数,保存一下. # coding=utf-8 """ 这是“nester.py”模块,提供了一个名为print_lol的函数,这个函数的作用是打印列表,其 ...
- substr()用法
知识点链接:http://www.cplusplus.com/reference/string/string/substr/ 注意: std::string str2 = str.substr (po ...
- MySQL复制介绍及搭建
MySQL复制介绍 MySQL复制就是一台MySQL服务器(slave)从另一台MySQL服务器(master)进行日志的复制然后再解析日志并应用到自身,类似Oracle中的Data Guard. M ...
- 完成一个springboot项目的完整总结------三
这一次的总结是最关键的部分,主要涉及了ORM的三种操作,这些操作是项目的难点,三种操作包括多对一.多对多.一对多三种模式,接下来展示项目代码 1.多对一 clazz表对应grade表和charge表 ...
- Linux系统 安装JDK和tomcat
下载文件路径包: http://archive.apache.org/dist/ 首先将软件包上传到/tmp目录下 需要文件如下 jdk-8u60-linux-x64.gz apache-tomcat ...
- Coins in a Line
Description There are n coins in a line. Two players take turns to take one or two coins from right ...
- 【转载】Mixed mode assembly is built against version 'v2.0.50727' of the runtime and cannot be loaded in the 4.0 runtime without additional configuration info
网上查到http://social.msdn.microsoft.com/Forums/vstudio/en-US/58271e39-beca-49ac-90f9-e116fa3dd3c0/mxed- ...