git上传分支的原理_GIT分支,创建分支与合并分支的工作原理与教程

开发一个版本,采用的发布流程:

(1).从master的最新代码拉取一个开发分支,在上面进行开发

(2).在开发分支上不断地进行提交版本,期间,master也会有因为其他版本上线而不停有版本合并

(3).要发布的时候,把分支重新合到master分支

1.什么是分支

分支是一个commit对象链:一条工作记录线

git每一次提交版本,都会在该版本上存一个字段parent,记录的是上一个提交的版本号,这样就可以从一个提交的快照里拿到之前所有提交过的记录

2.新建分支是如何操作的

先了解2个重要的概念——HEAD和master:HEAD指向的就是当前分支(某个时刻你所处的分支),master指向提交

(1)创建分支之前,HEAD指向master

(2)创建分支b1,HEAD指针指向b1

与svn不同的是,svn创建分支会把全部内容拷贝一份,git创建分支只会创建一个指针

3.实践

(1) # 新建一个仓库用于测试

git init

# 新建一个文件用于测试,并写入"第一次提交"

vim test.txt

# 提交修改到仓库

git add . && git commit -m '第一次提交'

# 修改文件test.txt,添加一行"第二次提交"

vim test.txt

# 第二次提交修改到仓库

git add . && git commit -m '第二次提交'

细心的朋友可能已经发现了,这两次提交我们都是在master(即主分支上)提交的,此时项目分支图如图所示

(2) 我们创建一个分支b1,一个分支b2,并演示一下分支切换

# 创建分支b1

git branch b1

# 切换到分支b1

git checkout b1

# 切换回主分支master,如图所示

git checkout master

# 创建并切换分支b2

git checkout -b b2

# 切换回主分支master,如图所示

git checkout master

创建分支后,此时项目分支图如图所示

(3) 尝试一下在不同分支下工作

在master进行工作

# 在master新建一个master.txt文件

touch master.txt

# 提交一次

git add . && git commit -m 'master上的第三次提交'

# 查看当前文件内容

ll

(4) 切换到其他分支看看,可以发现其他分支下并没有master.txt文件,是不是很神奇

# 切换到分支b1

git checkout b1

# 查看当前文件夹文件

ll

# 切换到分支b2

git checkout b2

# 查看当前文件夹文件

ll

(5) 分别在b1,b2工作

# 切换到分支b1

git checkout b1

# 创建文件

touch b1.txt

# 提交到仓库

git add . && git commit -m 'b1上的第三次提交'

# 查看当前文件目录

ll

# 切换到分支b2

git checkout b2

# 创建文件

touch b2.txt

# 提交到仓库

git add . && git commit -m 'b2上的第三次提交'

# 查看当前文件目录

ll

此时项目分支图如图所示

(6) 当发版时我们需要进行合并分支,现在我们把b2分支合并到master上

# 切换到分支master

git checkout master

# 合并代码

git merge b2

是不是很方便,当你同一时间一个项目遇到多处修改使用git会有多舒服你用过才知道。此时项目分支图如图所示

大功告成!

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

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

相关文章

有十五个数按由大到小顺序存放在一个数组中_「图形化编程」前导知识-数组(一)...

今天我们来学习一个新的概念-数组。这节课将通过一个小程序讲解数组的基本概念-数组的长度和下标定义数组指的是有序元素的集合,数组中的每个元素具有相同的类型,按照顺序排列的形式组织在一起。我们可以把数组想象为一个抽屉柜,每个抽屉只能…

octave错误-error: ‘squareThisNumber‘ undefined near line 1 column 1

.m文件名称也应为大写:squareThisNumber.m 问题2: parse error near line 1 of file C:\Users\asus\squareThisNumber.m syntax error >>> {\rtf1\ansi\ansicpg936\deff0\nouicompat{\fonttbl{\f0\fnil\fcharset134 \cb\ce\cc\e5;}} 解决方案…

工业机器人几个自由度_工业机器人有多少个运动自由度呢?

2008-09-11psp有什么好游戏?自由度很高的自由的高的游戏,如果不限定位动作游戏的话还是有一些的。首先就是楼主所说的GTA,自由度高的典范。然后楼上MM说的《怪物猎人》,同样超高自由度的动作游戏,推荐。《魔界战记》,…

python矩阵中找满足条件的元素_Python 找到列表中满足某些条件的元素方法

Python 找到列表中满足某些条件的元素方法 更新时间:2018年06月26日 11:20:17 作者:CS_network 今天小编就为大家分享一篇Python 找到列表中满足某些条件的元素方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看…

计算机启动过程-阮一峰

从打开电源到开始操作,计算机的启动是一个非常复杂的过程。 我一直搞不清楚,这个过程到底是怎么回事,只看见屏幕快速滚动各种提示...... 这几天,我查了一些资料,试图搞懂它。下面就是我整理的笔记。 零、boot的含义 …

python全局名称空间_python名称空间,命名空间

全局名称空间:在python解释器开始执行之后, 就会在内存中开辟一个空间, 每当遇到一个变量的时候, 就把变量名和值之间的关系记录下来, 但是当遇到函数定义的时候, 解释器只是把函数名读入内存, 表示这个函数存在了, 至于函数内部的变量和逻辑, 解释器是不关心的. 也…

10分钟带你了解python_ComeOn!10分钟带你了解Python的变量和数据类型

对任何语言来说,变量和数据类型都是非常重要和基础的内容。这篇文章就带你用10分钟的时间,学会Python的变量和数据类型这个知识点。一、知识点python 关键字变量的定义与赋值input() 函数字符串的格式化二、实验步骤每一种编程语言都有它们自己的语法规则…

python神经网络实例_Python编程实现的简单神经网络算法示例

本文实例讲述了Python编程实现的简单神经网络算法。分享给大家供大家参考,具体如下: python实现二层神经网络 包括输入层和输出层 # -*- coding:utf-8 -*- #! python2 import numpy as np #sigmoid function def nonlin(x, deriv False): if(deriv Tru…

由于被认为是客户端对错误(例如:畸形的请求语法、无效的请求信息帧或者虚拟的请求路由),服务器无法或不会处理当前请求。

问题描述: 由于被认为是客户端对错误(例如:畸形的请求语法、无效的请求信息帧或者虚拟的请求路由),服务器无法或不会处理当前请求。 在实现向数据库中添加记录时,请求发送无效,参数也未传递到控…

为什么服务器要选择 Linux,这里总结了 10 大理由

从最近的统计数据可以看到,全球大量数据中心的服务器已经开始向基于 Linux Server 平台转移。相较 Windows Server 而言,Linux Server 提供了更多优势。包括 Google、Twitter、Facebook 和 Amazon 在内的诸多国际互联网巨头,都在基于 Linux S…

华南x79主板u盘装系统教程_华南x79怎么用u盘重装系统

现如今电脑已经走进千家万户,大家生活和工作基本上都离不开电脑,接下来介绍一下华南x79主板的电脑怎么用U盘重装系统,以重装win7为例,分享一下华南x79主板的电脑u盘重装系统的方法步骤。华南x79主板电脑用u盘重装系统步骤阅读1、插…

怎么通过id渲染页面_完全理解Vue的渲染watcher、computed和user watcher

作者:Naicehttps://segmentfault.com/a/1190000023196603这篇文章将带大家全面理解vue的watcher、computed和user watcher,其实computed和user watcher都是基于Watcher来实现的,我们通过一个一个功能点去敲代码,让大家全面理解其中…

VS2015启动调试程序变慢

问题描述## 标题 vs2015编译速度很快,运行时不停显示加载xxx.dll动态库,加载很慢 解决方案## 标题 打开vs2015,依次点击工具-》选项-》调试-》符号,点击勾选去掉Microsoft符号服务器,清空符号缓存完毕 转载自VS2015启动调试程序变…

广联达深思6代锁_广联达|新版加密锁驱动使用文档

查看已购如何“查看已购”?老版的以下功能:1. 查看已购产品程序2. 产品密码注册程序3. 加密锁设置程序4. 授权服务控制程序新版中我们对这些功能做了整理和重设计:5. 新版的“广联达新驱动”包含以上所有功能“查看已购”入口去哪了&#xff…

根可达算法的根_我的JVM(六):GC的基础概念以及GC算法

一、概述垃圾收集Garbage Collection通常被称为GC,但是GC一般也指Garbage Collecting(垃圾回收这个动作)或Garbage Collector(垃圾回收器),这些都是是JVM知识体系中非常重要的知识,也是程序员必须要掌握的技能,本文将详细讲述Java…

docker开放的端口_docker-5-解决宿主机没有开放81端口却可以直接访问docker启动的81端口nginx容器的问题...

我以为经过前面四篇博文的学习,自己对docker的了解最起码入门了,但是当我用docker启动一个81端口的nginx后(宿主机:容器/81:80),在宿主机的firwall防火墙没有添加81端口的情况下,竟然可以直接访问成功,然后试下docker运…

测试计划与测试方案

测试计划与测试方案主要有以下几点区别: 1.测试计划是一个偏管理性质的文档,而测试方案是一个偏技术类型的文档; 2.测试计划通俗来讲就是解决【谁来做?】【做什么?】的问题,而测试方案是解决【怎么做&#…

docker 删除包含关键字的镜像_30分钟带你轻松掌握Docker原理

前言Docker是什么?Docker是Go语言开发实现的容器。2013年发布至今,备受推崇。相关文档、学习资料十分详尽。近期有docker相关项目,得重新学习一下。博客以笔记为什么要使用 Docker?Docker 容器的启动在秒级Docker 对系统资源利用率…

ssm访问不到html_IDEA解决SSM项目的静态资源路径问题:HTML,CSS,JS--详解

直接上图(项目目录结构):我们主要关注webapp。如上图,建议把js,css,layui,首页等文件放在WEB-INF外部,WEB-INF放程序的主要网页,index页面,welcome,各种管理页面等(如下图…

pads中如何设置等长_如何在SQL Server中设置扩展,监控系统性能

dbForge Studio for SQL Server为有效的探索、分析SQL Server数据库中的大型数据集提供全面的解决方案,并设计各种报表以帮助作出合理的决策。dbForge Studio for SQL Server​www.evget.com扩展事件是一种有用且方便的解决方案,旨在监视您的系统性能。它…