研究下关于 a 和 b 两个分支 a合并到b 和 b合并到a 有什么区别。
结论:不用纠结合并代码的时候谁合并谁,只是方向不一样
二、实验有两个分支,分别是 feat_w8y 和 feat_617,最初都有共同的起始点,都是从c1这个revision(commit id)分叉出来的,feat_w8y分支上修改了代码向前进到c2 revision,而feat_617也修改同一行代码向前进到c3 revision。
由于修改了同一行代码,两个分支合并的时候会出现代码冲突。
现在来研究 “a合并到b” 和 “b合并到a” 有什么不同。
背景:
feat_w8y分支上将方法名由 getProfile
改成 getProfiles_byw8y
feat_617分支上将方法名改成 getProfiles_by617
-
feat_617上合并feat_w8y(即feat_617 c3,a和b分支都在c3上,或者 “a分支在c2,b分支在c3”)
-
可能存在多个分叉点,存在一个最近的分叉点
看图有两个主线,上面a分支,下面b分支 可以看到分叉点是:c1,c6,c12 汇聚点是:c6,c10 结论:最近的分叉点是c12
如何看懂合并后的这些符号?
-
夹着的是 feat_w8y 分支的内容
-
什么是HEAD的?HEAD在这里就是指HEAD所指向的commit,其实就是当前所在的分支。比如截图就是在feat_617上执行merge命令合并feat_w8y,所以HEAD是指feat_617分支
可以看到GitHub自己的编辑器显示的就不是像 HEAD 这么难理解的,直接展示为分支名,如feat_617和feat_w8y
-
可以使用
git status
查询有什么文件冲突,也可以搜索关注打赏
-
- 防止电脑睡眠的Java程序
- 怎么在Windows10中找回Windows7的照片查看器(Windows 照片查看器)win10新的照片查看器太难用了
- IDEA的Terminal光标太粗了如何调细
- IDEA的Annotate或Annotate with Git Blame
- 如何搜素git某个分支是否存在?
- `git fetch` 和 `git remote update origin --prune` 的区别(以及跟`git pull` 的区别)
- 分支合并到b和b合并到a有区别吗
- Java 中如何比较两个BigDecimal 以及BigDecimal的坑
- 关于Springboot的@Profile的写法以及多个profile的写法排坑(“!profile1 && !profile2“ 的写法)
- 关于启动springboot如果指定多个profile时相同配置的覆盖规律