- 热门职位
- 热门地点
- 地区招聘
你可曾碰到过这般状况:满心欢喜地修改了代码,在打算提交之际,Git却陡然报错称“Conflict”?切莫惊慌,这实际上便是Git冲突。今天我们将要探讨这个常见的Git问題,从“缘何会出现”至“怎样迅速处置”,能让你轻易上手。
具体来讲,Git冲突讲的是,在那种同一个文件的同一位置,出现两类不同版本代码被修改之时,这样的Git就没办法自动判定该留存哪部分内容,进而就需要你亲自去做出决定的状况 。
设想此种情境:你跟同事同步着手撰写一篇文档,你对第一段第一行做出了修改,此时同事也针对第一段第一行进行了改动。当你试图将同事所做的修改“吸纳”到自身版本当中时,Git便会陷入两难之境:“这两行究竟该保留谁的呢?”——此即所谓的冲突 。
为什么会产生冲突?
冲突的核心原因是“同一位置的修改”。具体来说,常见场景有:
多人协作改同一文件
比如说,你于本地分支(main)之中更改了文件A的第3行,与此同时,同事在远程分支(dev)那里也对文件A的第3行做出了更改。当你去执行git pull或者git merge dev这个操作的时候,Git便会察觉到冲突。
分支合并时的版本差异
倘若你于main分支那儿创建了一个新分支,此新分支为feature,在feature分支里对文件B的第5行作出了更改,而他人亦在main分支里更改了文件B的第5行,那么当把main分支合并到feature分支之时,便极有可能出现冲突。
删除与新增的冲突
例如,你将文件C之中的某一行删掉了,然而其他人却在那一行的下方增添了内容,Git就会陷入困惑,“这一行究竟是要删除还是保留呢?”。
实则解决冲突这件事并不困难,只需牢记着“找标记”,紧接着“改内容”,随后“标记已解决”这三个步骤便可。接下来会借助例子逐一对你诠释:
当去执行git pull或者git merge的时候,Git会给出提示”Automatic merge failed“(也就是自动合并失败),在这个时候去打开报错的文件(就像test.txt这样的文件),你能够看到类似这样子的冲突标记 , :
<<<<<<< HEAD
// 这是你本地分支(HEAD)的修改内容
Hello World
=======
// 这是要合并的分支(比如dev)的修改内容
Hi Git
>>>>>>> dev
这些符号是Git自动添加的,用来分隔不同版本的代码:
被称作要合并的分支,像dev这样的分支的修改,你能够理解为是“别人的版本” 。
有着冲突标记的那些内容,都属于是需要你依靠手动去进行选择的部分,或者是要去合并的部分。就好比上面所举的那个例子当中,你得去做出决定,对于“Hello World”以及“Hi Git”,到底要保留其中哪一个,又或者是在两者都需要保留的情形下,把它们改成“Hello Hi Git” 。
操作建议:
如果只需要保留“你的版本”,那么,删除=======,并且下面的>>>>>>> dev也删除,只留下。
领导力干货:管人不能一视同仁,四招因材施教
对中层管理干部来讲,情境 领导力 是其必须掌握的一种能力。培养员工时,得在能力以及意愿方 ...
人际交往中沟通技巧:与不同亲疏关系的人交流要点
在当今的现代社会里头,人与人之间的交往恰似一门极为微妙的艺术,我们常常是在各不相同的 社 ...
面试谈薪资怎么谈?HR新手必看的薪资谈判技巧
涉及到招聘录用成本,这属于 HR管理 的一项工作内容,而且它还会对整体人事成本的控管产生 ...
招工潮来袭!各地出招帮你家门口就业
央广网于北京2月21日发布消息,依据中央广播电视总台中国之声《全国新闻联播》的报道,春节 ...
大学生职业规划:梦想与专业结合,成就自我与社会责任同行
平常学习、工作或者生活里,大伙都免不了碰到作文乃至范文哩,借由文章能够将我们那些零零碎碎 ...