[GitHub]第三讲:简单分支操作

Git 最核心的操作对象是版本( commit ),最核心的操作技巧就是分支。

什么是分支?

仓库创建后,一旦有了新 commit,默认就会放到一个分支上,名字叫 master。前面咱们一直看到的多个版本组成的一条历史线,就是 master 分支。但是一个仓库内,用户可以自己创建其他的分支,可以有多条历史线。

说说 master 这个名字,一般中文叫“主分支”,其实从技术底层来讲它跟其他我们自己要创建的分支没有区别,只不过它是天生的默认分支。实际工程项目中会人为的给它一个重要的使命,存放稳定代码。就像 github 公司倡导的。

master 分支上的所有代码都应该是可以部署的

意思就是 master 分支上的代码是随时可以放到产品服务器上跑的代码。这样,如果想开发一个新功能,可以新开分支。 想象一下历史线上有很多节,每个版本就是一节。一个分支相当于一跟竹子,一节节的往上长。

但是实际上在底层并不是每个分支都拷贝出自己独立的一条历史线。其实 master 本身只是一个指针,指向 master 分支上最新的一个版本。这样由于每个 commit 都可以顺藤摸瓜找到自己的前一个 commit,那么这条历史线就可以确定了。

创建新分支

什么时候需要开一个新分支,这个后面讲各种工作流程的时候会介绍,今天先把基本操作学会。 到客户端的Branches 这一项

点击1处的加号,就会弹出2处的对话框。Create a new branch off master 就是来创建一个分支。在对话框中填入 idea,创建了 idea 分支的。所谓 off master 意思是“基于 master ”分支,所以此刻 idea 分支并不为空,而是拥有和 master 一样的历史。如下图,箭头所指的小对勾表示“当前分支”( current branch )已经自动切换到 idea 分支。

但是,在底层这个的实现是非常巧妙的,就是又创建一个新的 idea 指针,跟 master 指针指向同一个版本,根本没有拷贝历史线。

如果现在我对项目做一下修改,然后 commit 了。那么移动的只是 idea 指针,master 不变。就成了这样:

现在 master 分支包含两个版本 C1 和 C2,idea 分支包含三个版本 C1,C2,C3 。

默认情况下这个 idea 分支只是存在于本地,如果想在远端仓库上发布这个分支,就点一下 idea 分支右侧的Publish 按钮。

这样,到远端仓库看一下,点击下图1处,发现果然2处多了一个 idea 分支,3处的输入框中,不但能搜索已有分支,还能创建新分支,看到了吧,很多操作在本地客户端和 github.com 上都能进行。

切换分支

到 branches 标签下,相中哪个分支了,双击一下就切换过去了。时间长了你会觉得这个也不够快,还是纯键盘操作快。敲 Cmd-B 可以打开分支切换框,输入名字回车,就切换成功了。

如果你在 idea 分支上有了修改但是还没有来得及 commit,这时候如果切换分支,那么 git 会替你保存这部分修改,也就是在切换到的分支上是看不到这部分修改的。但是不要担心,只要你切换回老分支,修改内容又回来了。

注意,每次切换分支,项目代码,术语叫工作树( Working Tree )是会随着变化的,在编辑器中看看就知道了。

删除分支

首先当前分支是不能删除的。什么意思?到客户端的 Branches 标签下,左侧有对勾的就是当前分支,打开右侧小箭头的下拉菜单,可以看到 delete 这一项是禁用的。想删除它,就先要切换到其他分支,例如 master。这样就可以删除 idea 分支了,如果执行本地删除 github.com 上对应分支也会同时被删除。

在客户端把分支切换到 idea,现在试图去删除 master 。点开 master 分支的小箭头,发现 delete 一项可以点,所以点一下,但是报错了:“”master” is the repository’s default branch and cannot be deleted.` 要到 github.com 上修改默认分支( default branch 注意跟当前分支是不同的),就像这样。

在远端仓库,也就是 github.com 上如何切换默认分支呢?到 settings 下面就更改 Default branch 就可以了。

如果只想删除远端分支,保留本地分支,可以在客户端中使用每个分支右侧的 Unpublish 这个选项。

总结

只开测试分支,调好代码 commit 了之后,如果不把代码搞到 master 分支上是没有太大意义的,这就涉及到分支合并的问题了,这个是 git 最大最强的一块功能,后面介绍。

转载于:https://www.cnblogs.com/wanghang/p/6299698.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/271660.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

算法基础:常用的排序算法知识笔记

1、算法外排序分类2、冒泡排序冒泡排序(Bubble Sort)属于交换排序,它的原理是:循环两两比较相邻的记录,如果反序则交换,直到没有反序的记录为止。实现算法:/*** 冒泡排序优化后的算法* 设置一个…

302状态码_http状态码是什么?301 302 404的SEO应用场景

什么是HTTP状态码?简单的讲,就是用以表示网页服务器HTTP响应状态的3位数字代码。其中1xx表示临时响应,2xx表示成功处理了请求,3xx代表重定向,4xx表示请求错误,而5xx表示服务器错误。除了网页正常返回200之外…

算法基础:常用的查找算法知识笔记

1、查找表和查找效率的概念查找表是指由同一类型的数据元素构成的集合。分为静态查找表和动态查找表。1.1 静态查找表1、查询某个特定元素是否在查找表的集合当中2、查询某个特定元素的各种属性1.2 动态查找表1、在查找表中插入一个数据元素2、在查找表中删除一个元素1.3 关键字…

注解参数怎么使用变量_硅橡胶胶水有哪些特点?使用参数表现的怎么样?如何储存?...

作为单组分产品,硅橡胶胶水的使用方法简单又灵活。直接涂抹在粘接基面上,固化之后即可抵抗外界的压力与冲击。别看它的规格不是很打,却可以顺顺利利完成粘接,形成保护膜。硅橡胶胶水有哪些特点?没有固化之前,是半透明…

Java中return的两种用法

一、return语句总是用在方法中,有两个作用。 一个是返回方法指定类型的值(这个值总是确定的)。 一个是结束方法的执行(仅仅一个return语句)。 一般的就百是用在有反回值的方法中,用来返回方度法指定问类…

算法基础:递归算法知识笔记

1、递归算法定义递归算法是将重复问题分解为同类的子问题而解决问题的方法,其核心思想是分治策略。简单来说就是自己调用自己。直到达到退出递归的条件,则完成递归。2、递归的步骤1、找整个递归的终止条件:递归应该在什么时候结束&#xff1f…

ttl继承逻辑门的逻辑功能与参数测试 实验总结_LMS电声测试仪,LMS-V测试系统,精声电声...

LMS-V测试系统LMS扬声器测试仪从推出到现在25年的时间,在全世界被很多扬声器开发与制造厂家广泛应用研发与生产质量控制,传统的LMS扬声器测试仪采用ISA卡的形式提供,所以面临着越来越多的零件过时,所以为了彻底解决这些问题&#…

java中break标记的使用

笔试题目&#xff1a;break目前位于内层的for循环&#xff0c;如何才能让break作用于外层 的for循环。可以标记解决 标记的命名只要符合标识符的命名规则即可。 Test public void test2(){aaa:for(int j 0 ; j<3 ; j){ // j0 外层for循环for(int i 0 ; i< 2 ; i){ //…

电脑基础知识入门:键盘上的英文,意思和功能汇总!

电脑键盘是把文字信息的控制信息输入电脑的通道&#xff0c;从英文打字机的键盘演变而来的。它最早出现在电脑上的时候&#xff0c;还是一种叫做“电传打字机”的部件。那些陌生的键盘按键都有什么用途?很多孩子不知道键盘上功能键和字母数字键以外的键盘按键有什么用&#xf…

elementui el-dialog 离顶部的位置_驻马店建筑物避雷带的安装位置,本月报价

首页 > 新闻中心发布时间&#xff1a;2020-11-06 18:23:42 导读&#xff1a;科杰防雷为您提供驻马店建筑物避雷带的安装位置的相关知识与详情&#xff1a; 该系统在正常运行时&#xff0c;不管三相负荷平衡不平衡&#xff0c;在中性线N带电情况下&#xff0c;PE线不会带电。…

android 弹出框带标题栏,Android开发靠标题栏的弹框

一、效果图title_dialog.png二、思路首先它是一个弹框&#xff0c;只是弹框的布局做些处理&#xff0c;布局占满屏幕&#xff0c;只有需要白色的布局的背景设为白色。其他没设置背景颜色&#xff0c;自然用dialog的style的windowBackground三、案例关键代码dialog的xmlxmlns:ap…

算法基础:图的相关算法知识笔记

一、图的相关算法1、图的分类知识如下图&#xff1a;2、生成树概念对连通图进行遍历&#xff0c;过程中所经过的边和顶点的组合可看做是一棵普通树&#xff0c;通常称为生成树。连通图的生成树具有这样的特征&#xff1a;边的数量 顶点数 - 13、最小生成树在连通网的所有生成树…

java中break和continue的用法例子

break用于switch语句 1. break用于switch语句中&#xff0c;终止switch语句 下面先看 加上break,效果如下 我们可以看到&#xff0c;没有用过break关键字时&#xff0c;不会在判断下一个case的值&#xff0c;直接向后运行&#xff0c;直到遇到break&#xff0c;或者整体swit…

ftp 工具_ftp工具,ftp工具有哪些

对于ftp工具&#xff0c;你了解多少&#xff1f;其实一般人也接触不到这种软件。ftp工具主要是针对从事网站管理的工作人员比较有利的一款工具。可以帮助他们快速的解决工作中的问题。方便、简单、快捷又明了的解决问题。那ftp工具有哪些呢&#xff1f;接下来给大家推荐四款好用…

盘点世界十大软件外包公司排名是哪些公司

排名第一:IBMIBM,总部在纽约的阿蒙克。托马斯沃森19世纪80年代在美国成立,是全球最大的信息技术和商业解决方案公司,在全球拥有超过30万名员工,业务遍及160多个国家和地区。电脑上的制作非常出名,事实上,IBM在软件方面取得了巨大的成就,特别是在一些IBM服务器上使用的软件平台上…

判断不为空和不为空串的方法java

判断不为空和不为空串的方法 方法一:用StringUtils工具类 首先要引入依赖 <dependency><groupId>org.apache.commons</groupId><artifactId>commons-lang3</artifactId> </dependency> if( StringUtils.isNotBlank(str3) && St…

android xml事件,安卓事件

1、自定义内部类2、匿名内部类3、当前activity去实现事件接口4、在布局文件xml中添加点击事件属性(使用频率非常高)补充&#xff1a;a、Android 在xml文件中 给某个控件声明 id 是: "/自定义名字" &#xff0c;获取是&#xff1a; "/自定义的名字" &#x…

Cocos2d-x v3.0物理系统 利用PhysicsEditor创建多边形

Cocos2d-x 3.0的新物理系统我就不必多说了&#xff0c;接触一段时间&#xff0c;感觉还是不错的。对于那些基本概念&#xff0c;网上的教程已经泛滥了&#xff0c;就不多说了&#xff0c;不过对于创建多边形物体的教程&#xff0c;还真不多&#xff0c;很多都是创建圆形和矩形&…

公众号开发 单独 给某个用户 推送消息_韩国5G用户6月底已达134万 较5月底增加近70%...

中关村在线消息&#xff1a;韩国三大运营商SK、KT和LG率先于去年12月开始向企业用户提供商用5G 服务&#xff0c;今年4月初推出面向个人消费者的5G民用服务。韩国作为全球首个推出5G 服务的国家&#xff0c;他们的5G用户数量在6月时已经突破100万大关。日前韩国公布6月底最新的…

程序语言的概念知识笔记

1、低级语言和高级语言 计算机指令程序&#xff1a;0、1 组成的机器指令序列。特点&#xff1a;效率低、可读性差、难以维护。 汇编指令&#xff1a;用常用的符号代替0、1 序列来 表示机器指令&#xff0c;例如用ADD表示加法。 高级语言&#xff1a;面向对象设计的各类应用的程…