【Day26】Git 版本控制 - merge 发生冲突

在上一篇文章中提到碰撞(collision),让我突然想到!还有这个主题可以拿来撰写,就是:当你在 merge branch 时发生冲突。

这是什麽意思呢?我们来看个情况剧:

假设你现在一共有三个 branch,分别是 Master、func 1、func 2,然後你想将 func 1 跟 func 2 合并进 Master 中,结果却发生以下错误讯息 Automatic merge failed; fix conflicts and then commit the result. 这是什麽意思呢?

简单来说,就是你在 func 1 跟 func 2 中都更改了同一个档案的同一行,以下简单示意:

# test.py(branch = func 1)

a = 5
b = 2

print(a + b)
# test.py(branch = func 2)

a = 5
b = 2

print(a * b)

冲突就是发生在 test.py 的第六行,两个版本一个是 + 另一个是 *,git 就会混乱不知道该以哪个版本为主,因此产生合并冲突。
我很喜欢 git 的一个点是:错误码都很好理解,他会告诉你是哪个档案发生冲突,也会整理是哪一行的问题,根本是工程师的超得力助手!

那要怎麽解决问题呢?

  • 如果你是个人作业,就好好思考决定要留下哪一个版本,修改过後再提交。
  • 倘若你是团队协作,那很明显是沟通不良的问题,就好好进行沟通把问题解决掉,如果解决不掉问题,那就解决提出问题的人(误)

<<:  Vue.js 从零开始:Vue CLI 介绍与安装

>>:  Day26 MANO开源专案使用之OSM-环境篇

.Net Core Web Api_笔记11_组合路由

在一个Action中倘若想实现多种结果返回或者多种输入参数 就势必要能够支援多种路由模板 可能搭配不...

Day13 NodeJS-Web Server II

接续前一天的内容,今天的重点在於提升静态网页读取的效率与JSON格式档案在Server中的传递。 以...

Day 29 - 上架 App 到 Google Play Store for Android TV Part 2

昨天成为 Android TV 开发者後 我们可以来上架啦 因为这次铁人赛的资料来源来自威秀影城 版...

Nvidia Docker安装说明(含WSL2)

订阅patreon即可看到更多文章 https://www.patreon.com/wade3c ...

[Day 20] 2D 批次渲染 (二) - BURN OUT

今日目标 继续实作批次渲染 与先前的方法比较,是否增加效能 MISSION FAILED! 先跟 睡...