官网文档 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
合并前:
 3.Git合并的原理

合并后:
 3.Git合并的原理

记录三种指针的原理

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

【图1】head

3.Git合并的原理

【图2】remotes\origin

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

3.Git合并的原理3.Git合并的原理

【图3】logs\HEAD

3.Git合并的原理

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

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

在A上提交commitId:598cca,发现master保存的commitId没变
3.Git合并的原理
在master上进行reset ,reset到b6a4c9f
 3.Git合并的原理

观察到:A没有被master影响


3.Git合并的原理

相关文章:

  • 2022-01-12
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-09-13
  • 2022-12-23
  • 2022-12-23
  • 2021-06-05
猜你喜欢
  • 2022-01-06
  • 2021-09-12
  • 2022-12-23
  • 2022-01-27
  • 2021-09-27
  • 2022-12-23
相关资源
相似解决方案