赞
踩
首先说一下为什么会写这篇帖子。
最近在idea中使用git遇到两次对我来说比较大的问题。
其一,有一天同事发现自己写的代码不见了,不管是其他同事更下来的代码,还是自己本地的代码都不见了,后来找到原因是别人给冲掉了。很不幸,这个冲掉代码的人就是我。刚听到这个消息慌的一批,即使没有人因此责怪我,还是心里很难受,自己的不专业给别人制造了麻烦。
其二,就是最近测试阶段,大家修改application.yml这个配置文件比较多,我每次更新代码这个文件都冲突。这时候我都选择了Accept Theirs。当时自己的理解是接受他人的更改,一直以为这个选择是放弃自己的更改,这样便不会影响他人的代码。而且,也没想到这样会直接把这个文件提交到远程仓库。所以,又带来了一系列麻烦,我只要跟别人冲突,选择了Accept Theirs,就会把这个冲突文件直接提交到远程仓库,而且还附带了一些自己本不该提交的文件,真的让我十分头疼。
因此,今天花了很多时间来研究如何在idea中正确使用git,如何避免在团队开发中因为代码冲突给自己和他人带来不必要的麻烦。
开发使用的工具是IDEA,代码托管工具腾讯工蜂。
接下来分别解释一下git pull,git fetch,git merge。仅代表个人理解,如果理解不到位,欢迎指正。
更新代码有两种选择,分别是git pull,git fetch,一般来说最好选择git fetch。为什么呢?在遇到这个问题的时候我也浏览了大量的帖子,基本上都是解释为git pull = git fetch + git merger。当你git pull的时候,如果存在有冲突的文件,会提示如下图
大概意思你修改的文件与他人的存在冲突,可以查看冲突的文件,以及哪个地方存在冲突。
这时候我一般选择stash changes,把自己修改的暂存起来,再更新代码
更新代码后,再unstash changes,选择刚才stash的代码恢复,文件报错,发现git pull强制的进行了合并,这时候你可以根据实际需要选择保留的代码。
Updated upstream是更新的代码,Stashed changes是你暂存的修改。
选择git fetch——merge,会直接把冲突的地方显示出来。
出现三个子窗口,最左边的是你本地的代码,中间的是合并结果,最右边的是他人的代码。根据需要选择是保留自己的修改还是他人的修改。
选择自己的就Accept Left,选择他人的就Accept Right。或者选择左箭头右箭头。当然也可以全部选择保留。
综上,还是建议选择git fetch。以上是自己的用法和理解,欢迎指正。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。