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 相关文章推荐
拼音码表的生成
Oct 09 PHP
PHP 选项及相关信息函数库
Dec 04 PHP
PHP 图片上传实现代码 带详细注释
Apr 29 PHP
php统计文章排行示例
Mar 04 PHP
php构造函数的继承方法
Feb 09 PHP
PHP实现算式验证码和汉字验证码实例
Mar 09 PHP
WordPress中设置Post Type自定义文章类型的实例教程
May 10 PHP
微信公众号判断用户是否已关注php代码解析
Jun 24 PHP
24条货真价实的PHP代码优化技巧
Jul 28 PHP
PHP编程 SSO详细介绍及简单实例
Jan 13 PHP
laravel 5.1下php artisan migrate的使用注意事项总结
Jun 07 PHP
php如何比较两个浮点数是否相等详解
Feb 12 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
在字符串中把网址改成超级链接
2006/10/09 PHP
php读取二进制流(C语言结构体struct数据文件)的深入解析
2013/06/13 PHP
使用php将某个目录下面的所有文件罗列出来的方法详解
2013/06/21 PHP
php微信公众平台示例代码分析(二)
2016/12/06 PHP
jquery实现的让超出显示范围外的导航自动固定屏幕最顶上
2011/09/22 Javascript
Js+Flash实现访问剪切板操作
2012/11/20 Javascript
JQuery入门—JQuery程序的代码风格详细介绍
2013/01/03 Javascript
JQuery实现用户名无刷新验证的小例子
2013/03/22 Javascript
在表单提交前进行验证的几种方式整理
2013/07/31 Javascript
JS的千分位算法实现思路
2013/07/31 Javascript
jQuery实现单击按钮遮罩弹出对话框效果(2)
2017/02/20 Javascript
js获取css的各种样式并且设置他们的方法
2017/08/22 Javascript
详解node服务器中打开html文件的两种方法
2017/09/18 Javascript
使用vue-cli打包过程中的步骤以及问题的解决
2018/05/08 Javascript
js、jquery实现列表模糊搜索功能过程解析
2020/03/27 jQuery
python基础教程之获取本机ip数据包示例
2014/02/10 Python
Python实现扫描指定目录下的子目录及文件的方法
2014/07/16 Python
在Python3中使用asyncio库进行快速数据抓取的教程
2015/04/02 Python
Python常用知识点汇总
2016/05/08 Python
rabbitmq(中间消息代理)在python中的使用详解
2017/12/14 Python
Python自动化运维之Ansible定义主机与组规则操作详解
2019/06/13 Python
python采集百度搜索结果带有特定URL的链接代码实例
2019/08/30 Python
Python实现七个基本算法的实例代码
2020/10/08 Python
使用Python制作一盏 3D 花灯喜迎元宵佳节
2021/02/26 Python
HTML5 Canvas中使用用路径描画圆弧
2015/01/01 HTML / CSS
使用phonegap克隆和删除联系人的实现方法
2017/03/31 HTML / CSS
香港演唱会订票网站:StubHub香港
2019/10/10 全球购物
Solaris操作系统的线程机制
2015/07/28 面试题
五一劳动节活动记录
2014/03/23 职场文书
领导班子遵守党的政治纪律情况对照检查材料
2014/09/26 职场文书
党员对照检查剖析材料
2014/10/13 职场文书
一般纳税人申请报告
2015/05/18 职场文书
小学大队干部竞选稿
2015/11/20 职场文书
bootstrapv4轮播图去除两侧阴影及线框的方法
2022/02/15 HTML / CSS
Python os和os.path模块详情
2022/04/02 Python
Python PIL按比例裁剪图片
2022/05/11 Python