准备
创建仓库
test-01文件
test-02文件
创建test01分支和test02分支
这里我们使用idea打开源代码
test02分支同操作
大致操作
test01分支对文件test01文件操作:
1.添加内容:test01第一次修改1
2.git commit
3.添加内容: test01第二次修改2
4.git commit
test02分支对文件test02文件操作:
1.添加内容:test02第一次修改3
2.git commit
3.添加内容: test02第二次修改4
4.git commit
5.git merge test01或者git rebase test01
6.git push origin
Merge过程详细操作过程
test01分支
1.添加内容:test01第一次修改1
2.git commit
3.添加内容: test01第二次修改2
4.git commit
test02分支
1.添加内容:test02第一次修改3
2.git commit
3.添加内容: test02第二次修改4
4.git commit
5.git merge test01
6.git push origin
效果
版本链变化流程图
merge记录里面记录着test01相对于test02进行了哪些修改,
注意:如果我们会退掉了merge记录也会导致test01的test01_1和test01_2的提交记录丢失。
Rebase过程详细操作过程
test01分支和test02分支都先进行回退到初始,这里我们不使用revert,reset更适合我们现在测试这个场景
test02分支进行回退
1.查看日志
git log --pretty=oneline
2.版本回滚(硬撤销)
git reset --hard 34a89c58cc62bde5b724b1a220ace70e2930e7fb
目前就是我们刚新建test02分支的状态
test01分支进行回退
1.查看日志
git log --pretty=oneline
2.版本回滚
git reset --hard 34a89c58cc62bde5b724b1a220ace70e2930e7fb
目前就是我们刚新建test01分支的状态
执行操作流程
test01分支对文件test01文件操作:
1.添加内容:test01第一次修改01
2.git commit
3.添加内容: test01第二次修改02
4.git commit
test02分支对文件test02文件操作:
1.添加内容:test02第一次修改03
2.git commit
3.添加内容: test02第二次修改04
4.git commit
5.git rebase test01
效果图
版本链变化流程图
从版本链中可知二者区别merge会比rebase多生成一条merge提交记录。
rebase的缺点:
- 由于没有merge记录,会导致管理者无法辨别当前分支的某些提交是合并过来的还是当前分支提交的。