- 热门职位
- 热门地点
- 地区招聘
你可曾碰到过这般状况:满心欢喜地修改了代码,在打算提交之际,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也删除,只留下。
会计师行业数字化转型的方向、关键及未来发展趋势
需求发生的这样的转变产生了推动力,这个推动力促使了会计师行业朝着数字化方向转变。首先存在 ...
时间管理准则大揭秘!管理者必看的自我检讨与改进指南
毕业生简历优化服务可靠吗?当心简历造假风险
这段时间,有媒体的记者,是以“应届毕业生”这个身份,在某电商平台去购买 简历优化 服务, ...
重大政策绩效评估:推进地方治理现代化,提升政府服务效能
政府治理体系建设中,重大政策绩效评估是重要内容没错,它还是提高决策科学化、民主化、法治化 ...
招聘2.0时代,HR如何与心仪人才巧妙商讨薪资及关键技巧
当下处于 招聘 2.0时代,要寻觅到既契合企业需求又能满足个人期望的人才,这显然是极具挑 ...