Git命令之分支详解
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
中的分支,其实本质上仅仅是个指向 commit
对象的可变指针。Git
会将 master
作为分支的默认名字。若干次提交以后,其实已经有一个指向最后一次提交对象的 master
分支,他在每次提交的时候都会向前移动。
1.1.2 创建分支
使用命令 git branch
创建分支
$ git branch testing
Git
保存着一个名为 HEAD
的特别的指针。在 Git 中他是一个指向你正在工作中的本地分支的指针。运行 git branch
命令,仅仅是建立了一个新的分支,但是不会自动切换到这个新建的分支中。
1.1.3 切换分支
使用命令 git checkout
切换分支:
$ git checkout testing
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命令内容请搜索猪先飞以前的文章或继续浏览下面的相关文章希望大家以后多多支持猪先飞!
相关文章
- 这篇文章主要介绍了vscode安装git及项目开发过程,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2021-05-19
解决idea check out 切换分支时找不到需要的分支问题
这篇文章主要介绍了解决idea check out 切换分支时找不到需要的分支问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-02-09- 这篇文章主要介绍了详解idea从git上拉取maven项目详细步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-08-12
详解git submodule update获取不到最新提交的代码
这篇文章主要介绍了详解git submodule update获取不到最新提交的代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-08-21- Git是一个开源的分布式版本控制系统,可以有效、高速的处理从很小到非常大的项目版本管理,是目前使用范围最广的版本管理工具,本文重点给大家介绍在Visual Studio 中使用git及git的工作原理,感兴趣的朋友一起看看吧...2021-05-19
- 这篇文章主要介绍了Pycharm操作Git及GitHub的步骤详解,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2020-10-27
- 这篇文章主要给大家介绍了关于Swift学习笔记之逻辑分支与循环体的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。...2020-06-30
- DigitalOcean账户余额过期什么原因?这个问题估计许多的老朋友会发现出问题,因为是在变更之后账户余额才有过期一说了,下面我们就一起来看看吧。 我们是否还记得去年...2016-10-10
- 这篇文章主要介绍了Java8特性使用Function代替分支语句,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2020-09-09
- 这篇文章主要介绍了C#连接mariadb的方法,和MySQL连接方式差不多,大家参考使用吧...2020-06-25
- 这篇文章主要介绍了git pull时冲突的几种解决方式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-08-16
- 这篇文章主要介绍了详解使用IDEA模拟git命令使用的常见场景,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-05-01
mac git xcrun error active developer path 错误
本文主要是讲诉了如何解决在mac下使用git;xcode4.6的环境时,出现了错误(mac git xcrun error active developer path)的解决办法,希望对大家有所帮助...2020-06-30Python3 使用pip安装git并获取Yahoo金融数据的操作
这篇文章主要介绍了Python3 使用pip安装git并获取Yahoo金融数据的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-04-09- 在C# 程序中有三种结构: 顺序结构,分支结构,循环结构。...2020-06-25
- 这篇文章主要介绍了使用jenkins+maven+git发布jar包过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2020-07-26
- 本文主要介绍了GIt的基本操作。具有很好的参考价值,下面跟着小编一起来看下吧...2017-01-26
- 这篇文章给大家详细介绍在IDEA中配置Git,IDEA中操作Git的详细教程,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧...2020-10-14
- 这篇文章主要介绍了解决IDEA克隆代码后在右下角没有git分支的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-02-27
- 这篇文章主要介绍了IDEA+GIT使用入门详解,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2020-11-18