亦或是你的代码被人覆盖?心中有过的万马奔腾?版本控制软件提起版本控制软件,这可能是每一个程序员的必修课
从CVS,到SVN,亦或是Git,你真的会用吗?还是只会更新(update)和提交(commit)?在日常的工作中,不管是用Windows、Mac还是Linux,你总会找到喜欢的版本控制客户端来使用,或者更高级一点,你直接用命令行来完成而大多数情况下,我们会选择IDE中的插件来辅助我们,像IntellJ IDEA或是Eclipse,都拥有强大的版本控制的插件今天,我主要想介绍的,就是Eclipse中的版本控制插件在我看来,它是我用过的IDE中版本控制做的最好的,没有之一
每次有新员工入职,怎么使用Eclipse的版本控制插件,都会成为培训的第一课
同步功能不论是以前的CVS,还是SVN,亦或是Git插件,都扩展了同步(Synchronize)的功能正是这个功能,可以避免文章开头我们所能遇到的所有问题所以,每次培训,我都会给他们强调,在提交代码或是更新代码之前,必须先进行同步同步主要做的事情就是,将本地文件跟远程服务器的文件做比对,然后在同步视图中显示,并标出有冲突的,需要更新的,和未曾提交的代码这样做的好处有以下几点,第一、如果有冲突,有冲突一般会用红色标记你可以直接双击冲突的文件,就可以打开一个比较编辑器,可以清楚的看到哪些地方有冲突第二、如果没有冲突,只有更新,则会用蓝色表示这时候你可以通过双击打开比较编辑器,可以很清楚的看到别人提交了哪些代码,或具体的做了什么更改一方面有助于学习,另一方面可以看看别人有没有改动你的代码,一举两得第三、如果即没有冲突,也没有更新,那剩下的灰色标记的内容就是你所做的更改你依然可以通过双击在比较编辑器中查看,然后review你自己的代码,看看是否合理,有没有无谓的更改解决冲突冲突有以下几种类型:一、文件夹冲突文件夹冲突,一般是文件夹的属性文件不一致了,如服务器中将某些文件忽略了(.ignore或svn:ignore)导致的不一致这种情况,如果文件夹里面再没有其它冲突,我们可以直接用update或replace命令来解决如果里面的文件也有冲突,先解决冲突的文件,然后再update 或replace就能解决二、文本类型文件冲突这种冲突最常见,也最重要双击打开比较编辑器,查看具体的冲突内容
如果所有的远程修改和本地修改都不在同一行,则用update命令就能merge
如果不符合上述情况,则要相对麻烦一点比较编辑器,利用好上面的功能按钮第一步,将这个文件通过默认的编辑器打开,最好是Eclipse自带的编辑器,如果没有,用文本编辑器打开,如果实在不行,就先复制一份放到其它地方备用第二步,在比较编辑器中逐条往下对比,看看谁的代码是正确的,如果服务器的正确,则复制到本地(用好上图中的功能按钮),如果本地的正确,则保持不动,一定要保持冷静和耐心第三步,处理完所有的冲突,就可以merge了首先,保存刚才所做的更改,然后切换到第一步打开的编辑器,你应该能看到最新的合并后的代码,再确认一下,是否合适,如果不合适,返回第二步,重新修改如果合适,右键菜单中选择replace,这时,会将本地文件以及版本索引都替换成服务器的版本接下来,在编辑器中选择撤销,然后回退到修改后的正确文件这时候,你就可以放心的提交了三、其它类型文件冲突如图片,视频,或是其它非文本类型的文件,你只能另寻他法,或者强制更新或提交了注意事项一、有冲突尽量解决,最好不要用强制更新或是强制提交如果迫不得已要用,先做好备份,不然你的辛苦会白费,有时候会将你的所有历史记录都清空,让你哭一天
二、成员尽量的统一编码风格,或用相同的格式文件,在保存之前先format,可以打开save action里面的format选项,每次保存都会自动format,这样在提交代码时就不会出现过多的无用更改三、每次提交,都要添加一定的注释信息,这样可以很方便的通过历史记录来查看四、学会用ignore命令,没必要提交的文件都打上忽略标记,如maven工程中的target目录,还有一些点开头(.xxx)的文件等等总结工欲善其事,必先利其器
好的工具会让你事半功倍,而学会用好的工具才会让你如虎添翼
程序员入职第一课,你都Get了吗?
(图片来源网络,侵删)
0 评论