博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
git总结二、关于分支上——好好认识下分支是怎么回事
阅读量:7112 次
发布时间:2019-06-28

本文共 1086 字,大约阅读时间需要 3 分钟。

同样需要先来明确两件事:

  • HEAD指针指向的是当前分支
  • 分支(master, dev)指向的是最新的提交

一开始,git 中只有一个master分支,严格来讲,HEAD不是指向提交而是指向master,master才是指向提交的,HEAD指向的是当前分支;

这是git最开始的状态,用master指向最新的提交,再用HEAD指向master,这样就能确定当前的分支,以及当前分支的提交点,每次提交,master分支都会向前移动一步,这样随着你不断提交,master分支就会越来越长。 
 
接下来我们来清晰的看下一个分支从创建到合并再到删除,git到底都做了什么。
 
1、创建并切换分支:
Git checkout -b dev   

当创建一个新的分支时,git会去新建一个指针如dev,指向master相同的提交;
当切换分支到dev时,git做的是将HEAD指向dev; 
 
从此以后的所有提交都是在dev分支上,没提交一次修改,dev指针会向前移动一步,HEAD指向dev
Git add .
Git commit -m “d” 

 

2、 合并分支(dev合并到master)

(1) Git checkout master   切换回master分支

此时发生的是:HEAD指针指向master

(2)

Git merge dev        合并分支dev到master上
Git 下面出现的提示信息:
Updating d46f35e..b17d20eFast-forwardreadme.txt | 1 +1 file changed, 1 insertion(+)

注意Fast-forward:这次合并是“快进模式”,也就是直接把master指向dev的当前提交,所以合并速度非常快。(当然也不是每一次合并都是快进模式)
Fast forward模式:
通常,合并分支时,如果可能,Git会用Fast forward模式,但这种模式下,删除分支后,会丢掉分支信息。
如果要强制禁用Fast forward模式,Git就会在merge时生成一个新的commit,这样,从分支历史上就可以看出分支信息。
git merge --no-ff -m "merge with no-ff" dev
—no-ff:强制禁用Fast forward:
因为本次合并要创建一个新的commit,所以加上-m参数,把commit描述写进去。

3、删除分支

Git branch -d dev
 
 

 

转载于:https://www.cnblogs.com/youyang-2018/p/10769603.html

你可能感兴趣的文章
__FUNCTION__, __LINE__ 有助于debug的宏定义
查看>>
性能学习笔记(1)
查看>>
伺服电机的调试步骤有哪些
查看>>
php取两个整数的最大公约数算法大全
查看>>
P1525 关押罪犯
查看>>
input子系统驱动学习之中的一个
查看>>
Android--绑定服务调用服务的方法
查看>>
shell中的四种模式匹配
查看>>
(转)Making 1 million requests with python-aiohttp
查看>>
The Google File System论文拜读
查看>>
Web应用扫描工具Wapiti
查看>>
hadoop-17-hive数据库元数据查看
查看>>
Bind-DLZ with MySQL
查看>>
Google 地图切片URL地址解析
查看>>
angualrjs 配置超时时间
查看>>
为了让你的网页能在更多的服务器上正常地显示,还是加上“SET NAMES UTF8”吧...
查看>>
Nvme固体硬盘Intel750,SM961分别使用一段时间以后对比
查看>>
基于JMH的Benchmark解决方案
查看>>
html5利用websocket完成的推送功能(tomcat)
查看>>
IEWebcontrol webctrl_client目录配置
查看>>