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中对xml读取的相关函数的介绍一
Jun 05 PHP
一些使用频率比较高的php函数
Oct 03 PHP
php set_magic_quotes_runtime() 函数过时解决方法
Jul 08 PHP
PHP中去除换行解决办法小结(PHP_EOL)
Nov 27 PHP
PHP微框架Dispatch简介
Jun 12 PHP
destoon实现不同会员组公司名称显示不同的颜色的方法
Aug 22 PHP
百度工程师讲PHP函数的实现原理及性能分析(一)
May 13 PHP
详解PHP中的Traits
Jul 29 PHP
PHP编程实现脚本异步执行的方法
Aug 09 PHP
php实现微信支付之退款功能
May 30 PHP
PHP正则表达式笔记与实例详解
May 09 PHP
PHP+iframe模拟Ajax上传文件功能示例
Jul 02 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
php 获取客户端的真实ip
2009/11/30 PHP
CodeIgniter输出中文乱码的两种解决办法
2014/06/12 PHP
php生成Android客户端扫描可登录的二维码
2016/05/13 PHP
PHP静态方法和静态属性及常量属性的区别与介绍
2019/03/22 PHP
通过PHP实现获取访问用户IP
2020/05/09 PHP
Flex通过JS获取客户端IP和计算机名的实例代码
2013/11/21 Javascript
js使用split函数按照多个字符对字符串进行分割的方法
2015/03/20 Javascript
谈谈JavaScript自定义回调函数
2015/10/18 Javascript
JavaScript使用DeviceOne开发实战(三)仿微信应用
2015/12/02 Javascript
VUE开发一个图片轮播的组件示例代码
2017/03/06 Javascript
nodejs爬虫遇到的乱码问题汇总
2017/04/07 NodeJs
JS判断微信扫码的方法
2017/08/07 Javascript
webpack4.0打包优化策略整理小结
2018/03/30 Javascript
使用layui实现树形结构的方法
2019/09/20 Javascript
vue组件系列之TagsInput详解
2020/05/14 Javascript
深入理解Python中的元类(metaclass)
2015/02/14 Python
在服务器端实现无间断部署Python应用的教程
2015/04/16 Python
探究Python多进程编程下线程之间变量的共享问题
2015/05/05 Python
Python中的FTP通信模块ftplib的用法整理
2016/07/08 Python
利用Django内置的认证视图实现用户密码重置功能详解
2017/11/24 Python
Python 创建新文件时避免覆盖已有的同名文件的解决方法
2018/11/16 Python
django教程如何自学
2020/07/31 Python
铭宣海淘转运:美国、日本、英国转运等全球转运公司
2019/09/10 全球购物
Ruby如何创建一个线程
2013/03/10 面试题
护理专业毕业生自荐信范文
2014/01/05 职场文书
大学生评语大全
2014/04/18 职场文书
课内比教学心得体会
2014/09/09 职场文书
校园广播稿精选
2014/10/01 职场文书
公安领导班子四风问题个人整改措施思想汇报
2014/10/09 职场文书
公司市场部岗位职责
2015/04/15 职场文书
幼儿园安全工作总结2015
2015/04/20 职场文书
2015年青年志愿者工作总结
2015/05/20 职场文书
践行三严三实心得体会(2016推荐篇)
2016/01/06 职场文书
护理自荐信
2019/05/14 职场文书
html+css实现分层金字塔的实例
2021/06/02 HTML / CSS
Java 轮询锁使用时遇到问题
2022/05/11 Java/Android