![af768f73a024c9c5445f00f10d80b21e.png](https://i-blog.csdnimg.cn/blog_migrate/c947908680f60fa7499542307143d7c7.png)
一、根据GIT提交记录查看提交过程
先做个git分支的背景介绍
![9cb0073f2f85c2ebaf83a5209068b0c9.png](https://i-blog.csdnimg.cn/blog_migrate/190f6ca7093a6a736378a0fb37f2c2e8.png)
图1
步骤说明
- 1⃣️ 项目A 默认分支是 master
- 2⃣️ 基于master分支创建 f1、f2、test分支
- 3⃣️ f1 发起合并请求到 test分支
- 4⃣️ f2 fetch & merge test分支 (此时可能会有冲突)
- 5⃣️ (若有冲突 则解决冲突)发起合并请求到test分支
注意:第4⃣️步 在f2 merge test分支的时候,test的历史提交记录 在f2分支上也会同步过来
1、查看某一个文件的git提交历史
![fe8bdf89ff5362d28a9e63b80e2d7f60.png](https://i-blog.csdnimg.cn/blog_migrate/12970fcf33835a3e9436a60eab6c8b5b.png)
2、提交历史列表
![f51bb153e1ed67fa50b34e761e888569.png](https://i-blog.csdnimg.cn/blog_migrate/934aba101ff1c9f47bfa6000dd845139.png)
3、提交过程分析
1⃣️ 查看文件提交信息 此时是 F1分支
![34dca1d31d52eb99c632d7be2b7a1eae.png](https://i-blog.csdnimg.cn/blog_migrate/c6564a19ee5c7ccc0c2f844faf2bed06.png)
2⃣️ 基于 1⃣️ 另外一个同事 又提交了一版本 即 F2 分支
![8c26cdd675f6ca934a53388f8c45db81.png](https://i-blog.csdnimg.cn/blog_migrate/d7eb8228a2bcc5142aefdb23ce52d680.png)
3⃣️ 合并请求
![4e124a03728e938df84c2575dd4674c5.png](https://i-blog.csdnimg.cn/blog_migrate/743888241f303891419cd4d3f827633e.png)
二、GIT revert 实战
1⃣️ 选中这一提交版本 进行Revret Commmit 即将当前版本及之后的提交记录全部都抹除
![7952391472bae3466f54f52977a0a8f1.png](https://i-blog.csdnimg.cn/blog_migrate/a437e8201a65bd7ef79ce9dca67fde30.png)
2⃣️ 提示有冲突
![c59048e1e7a6010552f3eac0f2e33abf.png](https://i-blog.csdnimg.cn/blog_migrate/3cb811e66efe3f1db6433bbd9e24b463.png)
![de0572ad560dcd877e4718d3b4862842.png](https://i-blog.csdnimg.cn/blog_migrate/b2546c6a681c17a4ac0bf094e8717175.png)
冲突文件都会报红标识
3⃣️ 为什么会冲突
1)revert过程
a、把当前版本及之后的代码的痕迹抹除掉b、然后再把上一版本的内容合并过来c、此时出现冲突的情况c-1 代码行变动
比如上一版本第10行代码 这个版本有变动 则会导致冲突 ; 而不是和想象的一样:先把这个版本的第10行变动删掉 然后再把上一版本的第10行代码合并过来
- 打开冲突文件
![12052e1adae0947cffc149d6108b99f7.png](https://i-blog.csdnimg.cn/blog_migrate/3e9a90d7293ed6b99d5cae66ff35aee7.png)
- 找到对应的代码提交记录
同一个地方有变动 看git提交记录 有红和绿就肯定会有冲突
![7fadbaba17edcc7801bc3e4895b424eb.png](https://i-blog.csdnimg.cn/blog_migrate/582314eccfb7fc31e7cf2f0842132ec2.png)
c-2 如果是新增的代码行 则不会产生冲突
- 代码提交记录
![ff80b023d8578fd60fffe58833febeda.png](https://i-blog.csdnimg.cn/blog_migrate/d7a9f4523e4b98d237c635fc26bc242e.png)
- 冲突文件中对应的代码行 (这里就没有冲突了)
![e985127de05f54df7230574698d499d1.png](https://i-blog.csdnimg.cn/blog_migrate/9d470f868ae5594c56a415af4abbba3b.png)