git基础之合并解决冲突

git基础之合并解决冲突

ID:32820963

大小:73.49 KB

页数:3页

时间:2019-02-16

git基础之合并解决冲突_第1页
git基础之合并解决冲突_第2页
git基础之合并解决冲突_第3页
资源描述:

《git基础之合并解决冲突》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、Git基础之合并解决冲突背景介绍项口代码开发过程己经离不开版木控制工具,git作为一款被广泛使用的分布式版木控制系统,大家已经非常熟悉。我们在项目中使用git进行自动化测试代码管理和维护,随着自动化测试代码提交的人数增加,越来越多的问题也随之暴露出来,今夭想要跟大家分享的是关于git代码合并的冲突问题。最初自动化代码是有一个人搭建起来,后来有3个测试同事加入编写测试代码,最先遇到的问题就是多人之间的协同问题,简单的gitpull和gitpush变得不听话起来,每次一提交代码就有代码冲突出现。下面看看我是如何解决的吧~知识储备

2、要解决问题之前,先要弄清楚git合并代码做了哪些事。git拉回(pull)操作实际是有两个步骤组成,一个是获取(fetch),一个是合并(merge)操作,即:gitpull=gitfetch+gitmerge根据合并操作是否遇到冲突,自动合并有以下三种情况:1修改不同的文件2修改相同文件的不同地方3同时修改文件名和文件内容场景一修改不同文件:用户D和用户L在本地提交屮修改了不同的文件,如果用户D将改动推送到服务器后,用户L再推送就会遇到非快进式推送错误。非快进推送(non-fast-forwardupdates)错误是在远

3、程版本库和当前版本库内容不一致时推送所致,引起原因一般为在多成员协同工作下,其他用户在当前用户版本库上次commit和本次commit之间向远程版本库执行了推送。具体过程如2假如用户D修改了mock文件夹下的开屏广告.txt文件,提交并推送至远端。echonprocess_id,Fmock/开,屏广皆.txtadd-u(曹存修改的和删除的文件,不包括新増加的文件),commit-m"update开屏广害"(一次性把晉存应庙有文件樓改提交到仓库的:push同时用户L修改了mock文件夹下的原生广告.txt文件并提交。echo^

4、clktype1*mock/原半广告.txtgiradd・ucommit-m"update原生L告"这时用户L在push时会遇到非快进式推送错误而终止。$gitpush![rejected]torch^test->torch^test(fetchfirst)error:failedtopushsomerefstohint:Updateswererejectedbecausetheremotecontainsworkthatyoudohint:nothavelocally.Thisisusuallycausedbyanoth皂

5、rrepositorypushinchint:tothesameref・Youmaywanttofirstintegratetheremotechangeshint:(e.g.Ffgitpull・・•')beforepushingagain・hint:SeethefNoteaboutfast-forwards*inrgitpush■-help*fordetails.下面操作可以实现合并并推送。$gitfetch$mergeorigin/master$g-push场景二修改相同文件的不同区域:当用户D和L在本地提交中分别修改了

6、feature文件夹下或者mock文件下的相同文件时仍可以提交并成功合并。具体操作同上步骤。场景三。同时更改文件名和文件内谷:用户D将feature文件名修改为fcaturcl,用户L针对重命名前的foaturo文件进行修改,Git对于此类冲突能够很好地处理,可以自动解决冲突实现自动合并。具体操作过程如下:确保D用户和L用户的木地版木库和远端版木库状态一致,先分别对两个用户的本地版木库执行$gitpull拉回操作。用户D在口己的工作区将feature文件进行重命名,并提交推送至远端。docfeatu厂edoc/feature

7、.txtcommit-m^movetodoc/."push用户L在自己的工作区修改了feature文件,在文件的最后插入内容,并本地提交。$echo加字段"featur^$wadd-u$commit^changedbyL.用户L推送合并后的本地版本库到共亨版本库。总结代码冲突是多人协作开发过程中最常见的问题,一旦解决不好,会引发丢失代码或者业务功能异常等问题,所以在系统功能设计上,要做到功能解耦,并且不同的功能在不同的文件中实现;在开发过程屮,也要养成良好的开发习惯,比如D和L都在修改feature文件或config文件,如

8、果两人都没有定期pull代码的习惯,那么push代码时就很容易遇到冲突。所以完成一个功能或者解决一个问题及时commit&push代码,有冲突尽早解决。

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。