3.Git合并的原理

官网文档 Git-分支合并

已经清晰地描述了合并的原理。
https://git-scm.com/book/zh/v2/Git-%E5%88%86%E6%94%AF-%E5%88%86%E6%94%AF%E7%9A%84%E6%96%B0%E5%BB%BA%E4%B8%8E%E5%90%88%E5%B9%B6
合并前:
 在这里插入图片描述

合并后:
 在这里插入图片描述

记录三种指针的原理

工作区有三种指针:head,remotes\origin,logs\HEAD
1.head(指向各个分支上的最后一个提交)用于指向本地分支;如图1
2.remotes\origin用于存储fetch下来的分支,如图2
3.logs\HEAD用于记录所做过的提交,切换过分支也会被记录,如图3

【图1】head

在这里插入图片描述

【图2】remotes\origin

两个从master切出来的分支master-01,master-02,都分别有提交,但是未推送。这里的remotes\origin\master指向的commitId相同。

在这里插入图片描述在这里插入图片描述

【图3】logs\HEAD

在这里插入图片描述

是否存在相同分支切出来的分支修改互相影响的问题?答:不存在

如果A分支是基于master切出来的,并且不push到远程,在master上进行修commit或者reset之后,会不会影响A分支?
结论:不会。
实验:
当前master上的commitId:19359dd
在这里插入图片描述
此时,head会新增A文件,并且保存了19359dd
在这里插入图片描述

在A上提交commitId:598cca,发现master保存的commitId没变
在这里插入图片描述
在master上进行reset ,reset到b6a4c9f
 在这里插入图片描述

观察到:A没有被master影响


在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值