Git命令之分支详解


Posted in PHP onMarch 02, 2021

1.1 概述

Git 中提交时,会保存一个 commit 对象,该对象包含一个指向暂存内容快照的指针,包含本次提交的作者等相关的附属信息,包含零个或者多个指向该提交对象的父对象指针;首次提交时没有直接祖先的,普通提交有一个祖先,由两个或者多个分支合并产生的提交则有多个祖先。

1.1.1 示例

在工作目录中有三个文件,准备将他们暂存后提交。暂存操作会对每一个文件计算校验和(SHA-1哈希串),然后把当前版本的文件快照保存在 Git 仓库中(Git使用blob类型的对象存储这些快照), 并将校验和加入暂存区域。 当使用 git commit 新建一个提交对象前,Git 会先计算每一个子目录的校验和吗,然后在 Git 仓库中将这些目录保存为树(对象);之后 Git 创建的提交对象,除了包含提交信息外,还包含了指向整个树对象的指针。这样将来需要的时候,重现此次快照的内容了。

$ git add text1.md text2.md tesxt3.md
$ git commit -m "init desc"

现在仓库中有了五个对象:三个文件表示快照内容 blob 对象;一个记录这目录树内容和其中各个文件对应 blob 对象索引的 tree 对象;还有就是一个包含指向 tree 对象的索引和其他提交信息源数据的 commit 对象。

Git命令之分支详解

修改后再次提交,这次提交的对象会包含上一个指向上次提交对象的指针。两次提交后变成下面这样。

Git命令之分支详解

Git 中的分支,其实本质上仅仅是个指向 commit 对象的可变指针。Git 会将 master 作为分支的默认名字。若干次提交以后,其实已经有一个指向最后一次提交对象的 master 分支,他在每次提交的时候都会向前移动。

Git命令之分支详解

1.1.2 创建分支

使用命令 git branch 创建分支

$ git branch testing

Git命令之分支详解

Git 保存着一个名为 HEAD 的特别的指针。在 Git 中他是一个指向你正在工作中的本地分支的指针。运行 git branch 命令,仅仅是建立了一个新的分支,但是不会自动切换到这个新建的分支中。

Git命令之分支详解

1.1.3 切换分支

使用命令 git checkout 切换分支:

$ git checkout testing

Git命令之分支详解

1.2 新建和合并

使用命令创建并切换分支

$ git checkout -b <分支名称>

合并分支,将开发分支合并到 master 主分支中

$ git checkout master
$ git merge <开发分支>

删除分支

$ git branch -d <分支名称>

解决冲突, ======= 隔开的上半部分,是 HEAD(即 master 分支,在运行 merge 命令时所切换到的分支)中的内容。下半部分是在开发分支的内容。

<<<<<<< HEAD:index.html
<div id="footer">contact : email.support@github.com</div>
=======
<div id="footer">
please contact us at support@github.com
</div>
>>>>>>> iss53:index.html

1.3 管理分支

列出所有的分支

$ git branch

列出各个分支最后一个提交对象的信息

$ git branch -v

1.4 远程分支

远程分支是对远程仓库中分支的索引。通过 git fetch origin 来同步远程服务器上的数据到本地。

推送本地的开发分支到远程

$ git push origin <开发分支名>

删除远程分支

$ git push origin :<开发分支名>

1.5 分支的扩展

git rebase ing

到此这篇关于Git命令之分支详解的文章就介绍到这了,更多相关Git命令内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

PHP 相关文章推荐
php socket方式提交的post详解
Jul 19 PHP
PHP 防注入函数(格式化数据)
Aug 08 PHP
PHP利用APC模块实现大文件上传进度条的方法
Oct 29 PHP
PHP获取redis里不存在的6位随机数应用示例【设置24小时过时】
Jun 07 PHP
php简单构造json多维数组的方法示例
Jun 08 PHP
PHP中递归的实现实例详解
Nov 14 PHP
PHPExcel 修改已存在Excel的方法
May 03 PHP
tp5(thinkPHP5框架)captcha验证码配置及验证操作示例
May 28 PHP
Yii框架实现对数据库的CURD操作示例
Sep 03 PHP
php异常处理捕获错误整理
Sep 23 PHP
laravel实现上传图片并在页面显示的例子
Oct 14 PHP
详解Laravel服务容器的优势
May 29 PHP
PHP之header函数详解
Mar 02 #PHP
laravel与thinkphp之间的区别与优缺点
Mar 02 #PHP
php中array_fill函数的实例用法
Mar 02 #PHP
PHP网站常见安全漏洞,及相应防范措施总结
Mar 01 #PHP
php框架知识点的整理和补充
Mar 01 #PHP
Docker 安装 PHP并与Nginx的部署实例讲解
Feb 27 #PHP
PHP加MySQL消息队列深入理解
Feb 27 #PHP
You might like
攻克CakePHP系列三 表单数据增删改
2008/10/22 PHP
第四章 php数学运算
2011/12/30 PHP
php+redis实现多台服务器内网存储session并读取示例
2017/01/12 PHP
laravel + vue实现的数据统计绘图(今天、7天、30天数据)
2018/07/31 PHP
tp5.0框架隐藏index.php入口文件及模块和控制器的方法分析
2020/02/11 PHP
dwr spring的集成实现代码
2009/03/22 Javascript
遍历DOM对象内的元素属性示例代码
2014/02/08 Javascript
jquery获取url参数及url加参数的方法
2015/10/26 Javascript
JavaScript+html5 canvas绘制渐变区域完整实例
2016/01/26 Javascript
jQuery简单动画变换效果实例分析
2016/07/04 Javascript
相册展示PhotoSwipe.js插件实现
2016/08/25 Javascript
jQuery插件FusionCharts实现的MSBar2D图效果示例【附demo源码】
2017/03/24 jQuery
JavaScript中各数制转换全面总结
2017/08/21 Javascript
vue项目常用组件和框架结构介绍
2017/12/24 Javascript
jquery根据name取得select选中的值实例(超简单)
2018/01/25 jQuery
改进 JavaScript 和 Rust 的互操作性并深入认识 wasm-bindgen 组件
2019/07/13 Javascript
详解datagrid使用方法(重要)
2020/11/06 Javascript
vue中封装axios并实现api接口的统一管理
2020/12/25 Vue.js
[03:08]Ti4观战指南上
2014/07/07 DOTA
python文件读写并使用mysql批量插入示例分享(python操作mysql)
2014/02/17 Python
跟老齐学Python之眼花缭乱的运算符
2014/09/14 Python
Python获取本机所有网卡ip,掩码和广播地址实例代码
2018/01/22 Python
python多进程实现文件下载传输功能
2018/07/28 Python
Python3中bytes类型转换为str类型
2018/09/27 Python
python 爬取古诗文存入mysql数据库的方法
2020/01/08 Python
Python ORM编程基础示例
2020/02/02 Python
美国时尚孕妇装品牌:A Pea in the Pod
2017/07/16 全球购物
三陽商会官方网站:Sanyo iStore
2019/05/15 全球购物
欧姆龙医疗欧洲有限公司:Omron Healthcare Europe B.V
2020/06/13 全球购物
护理自荐信范文
2013/10/05 职场文书
岗位职责定义及内容
2013/11/08 职场文书
元旦晚会邀请函
2014/01/27 职场文书
导游个人求职信范文
2014/03/23 职场文书
颁奖晚会主持词
2014/03/25 职场文书
有关骆驼祥子的读书笔记
2015/06/26 职场文书
详解JavaScript中的执行上下文及调用堆栈
2021/04/29 Javascript