当前位置: 首页 > news >正文

git rebase冲突说明(base\remote\local概念说明)

主线日志及修改

$ git log master -p
commit 31213fad6150b9899c7e6b27b245aaa69d2fdcff (master)
Author: 
Date:   Tue Nov 28 10:19:53 2023 +08004diff --git a/123.txt b/123.txt
index 294d779..a712711 100644
--- a/123.txt
+++ b/123.txt
@@ -1,3 +1,4 @@123
+4^Mcommit a77b518156879a5d7e93636eb826d40f873ff919
Author:
Date:   Tue Nov 28 10:19:37 2023 +08003diff --git a/123.txt b/123.txt
index bd956ea..294d779 100644
--- a/123.txt
+++ b/123.txt
@@ -1,2 +1,3 @@12
+3^Mcommit 9cb0b0d6c2c638fa9c35685972d0b57edbfd2d95
Author: 
Date:   Tue Nov 28 10:19:30 2023 +08002diff --git a/123.txt b/123.txt
index f33dfa2..bd956ea 100644
--- a/123.txt
+++ b/123.txt
@@ -1 +1,2 @@1
+2^Mcommit 137b1d78d1f696c5dc21d595142e0681bb041e1a
Author:
Date:   Tue Nov 28 10:19:00 2023 +08001diff --git a/123.txt b/123.txt
new file mode 100644
index 0000000..f33dfa2
--- /dev/null
+++ b/123.txt
@@ -0,0 +1 @@
+1^M

冲突分支日志及修改(其中第2、3次提交为冲突提交,第四次为相同提交)

$ git log master-1 -p
commit 53d255eb15f59d0395453c7688a038bb9cf05816 (HEAD -> master-1)
Author: 
Date:   Tue Nov 28 10:21:20 2023 +08004diff --git a/123.txt b/123.txt
index 6065780..403b9a5 100644
--- a/123.txt
+++ b/123.txt
@@ -1,3 +1,4 @@11-21-3
+4
\ No newline at end of filecommit 7ac2b8868b83c4c1a50b52a3808c7df870ad90bb
Author: 
Date:   Tue Nov 28 10:21:10 2023 +08001-3diff --git a/123.txt b/123.txt
index ea907e6..6065780 100644
--- a/123.txt
+++ b/123.txt
@@ -1,2 +1,3 @@11-2
+1-3^Mcommit 91cf797a56db8a42623e707e01435d6d82f19402
Author: 
Date:   Tue Nov 28 10:21:02 2023 +08001-2diff --git a/123.txt b/123.txt
index f33dfa2..ea907e6 100644
--- a/123.txt
+++ b/123.txt
@@ -1 +1,2 @@1
+1-2^Mcommit 137b1d78d1f696c5dc21d595142e0681bb041e1a
Author: 
Date:   Tue Nov 28 10:19:00 2023 +08001diff --git a/123.txt b/123.txt
new file mode 100644
index 0000000..f33dfa2
--- /dev/null
+++ b/123.txt
@@ -0,0 +1 @@
+1^M

在master-1分支中运行git rebase,结果如下:

$ git rebase master
Auto-merging 123.txt
CONFLICT (content): Merge conflict in 123.txt
error: could not apply 91cf797... 1-2
hint: Resolve all conflicts manually, mark them as resolved with
hint: "git add/rm <conflicted_files>", then run "git rebase --continue".
hint: You can instead skip this commit: run "git rebase --skip".
hint: To abort and get back to the state before "git rebase", run "git rebase --abort".
Could not apply 91cf797... 1-2

一、冲突部分全部手动解决不跳过,并以master-1为准
base 为 master-1 冲突提交(1-2)之前和 master 不冲突的BASE公共部分
local为 master 目的分支最新提交的全部内容
remote 为当前 master-1 冲突待(remote 在词典中可以翻译为相差很大的)提交的内容
在这里插入图片描述
提交1-2冲突后,解决1-3冲突显示如下:
base 和 remote的概念理解保持一致,但local与预期不符.
local更新为:当前 master-1 已经提交并保存的了部分,也就是最终master-1的在硬盘内(local)的内容
在这里插入图片描述
提交冲突1-3后,继续:
在这里插入图片描述
最终rebase完成。

二、第2个冲突以master为准,其他以master-1为准
解决1-2冲突,修改文件如下后再提交:
![在这里插入图片描述](https://img-blog.csdnimg.cn/8f7d2c2fa75c4fb387ad4abcfc80ce3c.p
解决1-3冲突,修改文件如下后再提交。
在这里插入图片描述
前面说 base 为 master-1 冲突提交(1-2)之前和 master 不冲突的BASE公共部分,但这里与预期不符,修改为:

base 为 master-1 冲突提交之前和 master 不冲突的提交,也就是可以共用(BASE)的提交,且为未修改前的提交

区别在于主体从内容,变成了一次提交,且为未修改前的提交

当前冲突修改界面说明:

这里local为上次解决冲突后的结果,也就是master-1(新),base变成冲突的上个提交1-2的冲突部分master-1(原始).
原始master-1日志列表 : 1-2 > 1-3 > 4
解决冲突1-2后 master-1 日志列表: (LOACL):1-2(新)> 1-3 >4 他们的共用BASE 提交 就是1-2(未修改前)

解决1-4冲突:
在这里插入图片描述
当前冲突修改界面说明:

原始master-1日志列表 : 1-2 > 1-3 > 4
解决冲突1-2后 master-1 日志列表: (LOACL):1-2(新)> 1-3(新) >4

三、第2冲突跳过,其他以master-1为准

1-2跳过,解决1-3冲突界面如下:
在这里插入图片描述
界面说明:
当前解决1-3,本地LOCAL 由于跳过1-2,所以LOCAL内容还是原始的1234. 这里相当于1-3 和 master (1-2跳过了形但魂还在) 进行rebase , 所以BASE为冲突分支的1-2。

总结:
base为 master-1 冲突提交之前和 master 不冲突的提交,也就是可以共用(BASE)的提交,且为未修改前的提交
local 为 当前 master-1 已经提交并保存的了部分,也就是最终master-1的在硬盘内(LOCAL)的内容
remote 为当前 master-1 冲突待(REMOTE 在词典中可以翻译为相差很大的)提交的内容

http://www.lryc.cn/news/251553.html

相关文章:

  • 函数式接口的妙用,让异步执行更简单
  • 读书笔记:《More Effective C++》
  • 手写VUE后台管理系统6 - 支持TS声明文件.d.ts
  • 第八天:信息打点-系统端口CDN负载均衡防火墙
  • 一款充电桩解决方案设计
  • Leetcode 2953. Count Complete Substrings
  • 【Python-第三方库-pywin32】随笔- Python通过`pywin32`获取窗口的属性
  • Flask使用线程异步执行耗时任务
  • zabbix监控nginx
  • 【CVE-2023-49103】ownCloud graphapi信息泄露漏洞(2023年11月发布)
  • 可视化数据库管理客户端:Adminer
  • Python----字典练习
  • CentOS 部署 WBO 在线协作白板
  • qt-C++笔记之QStringList
  • ply前端
  • U盘不仅能在电脑上使用,在手机上也可使用,包括安卓和苹果手机,但苹果的较特殊
  • 面试数据库八股文十问十答第二期
  • 【LeetCode】每日一题 2023_12_2 拼车(模拟/差分)
  • 网络和Linux网络_7(传输层)UDP和TCP协议(端口号+确认应答+超时重传+三次握手四次挥手)
  • KALI LINUX安全审核
  • 2023-12-03-解决libxkbcommon库编译完后图像界面不能使用键盘
  • vue el-table表格中每行上传文件(上传简历)操作
  • Python批量图像处理--图片重命名、图片旋转
  • 第五天 用Python批量处理Excel文件,实现自动化办公
  • mybatis整合(手动添加jar包方式)
  • leetcode - 矩阵区域和
  • 头歌JUnit单元测试相关实验进阶
  • 【kafka实践】11|消费位移提交
  • Mac卸载、安装Python
  • 算法——滑动窗口