“是谁提交的代码?”“谁把我的修改覆盖了?”每天早晨,办公室里有没有此起彼伏的叫骂声?
或是别人的代码被你覆盖?被人数落的翻江倒海!亦或是你的代码被人覆盖?心中有过的万马奔腾?
版本控制软件
提起版本控制软件,这可能是每一个程序员的必修课!从CVS,到SVN,亦或是Git,你真的会用吗?还是只会更新(update)和提交(commit)?
在日常的工作中,不管是用Windows、Mac还是Linux,你总会找到喜欢的版本控制客户端来使用,或者更高级一点,你直接用命令行来完成。
而大多数情况下,我们会选择IDE中的插件来辅助我们,像IntellJ IDEA或是Eclipse,都拥有强大的版本控制的插件。
今天,我主要想介绍的,就是Eclipse中的版本控制插件。在我看来,它是我用过的IDE中版本控制做的最好的,没有之一!
每次有新员工入职,怎么使用Eclipse的版本控制插件,都会成为培训的第一课!
同步功能
不论是以前的CVS,还是SVN,亦或是Git插件,都扩展了同步(Synchronize)的功能。正是这个功能,可以避免文章开头我们所能遇到的所有问题。
所以,每次培训,我都会给他们强调,在提交代码或是更新代码之前,必须先进行同步。
同步主要做的事情就是,将本地文件跟远程服务器的文件做比对,然后在同步视图中显示,并标出有冲突的,需要更新的,和未曾提交的代码。
这样做的好处有以下几点,
第一、如果有冲突,有冲突一般会用红色标记。
第二、如果没有冲突,只有更新,则会用蓝色表示。
第三、如果即没有冲突,也没有更新,那剩下的灰色标记的内容就是你所做的更改。
解决冲突
冲突有以下几种类型:
一、文件夹冲突
文件夹冲突,一般是文件夹的属性文件不一致了,如服务器中将某些文件忽略了(.ignore或svn:ignore)导致的不一致。这种情况,如果文件夹里面再没有其它冲突,我们可以直接用update或replace命令来解决。如果里面的文件也有冲突,先解决冲突的文件,然后再update 或replace就能解决。
二、文本类型文件冲突
如果所有的远程修改和本地修改都不在同一行,则用update命令就能merge!
如果不符合上述情况,则要相对麻烦一点。
第三步,处理完所有的冲突,就可以merge了。
如果合适,右键菜单中选择replace,这时,会将本地文件以及版本索引都替换成服务器的版本。
这时候,你就可以放心的提交了。
三、其它类型文件冲突
如图片,视频,或是其它非文本类型的文件,你只能另寻他法,或者强制更新或提交了。
注意事项
一、有冲突尽量解决,最好不要用强制更新或是强制提交。如果迫不得已要用,先做好备份,不然你的辛苦会白费,有时候会将你的所有历史记录都清空,让你哭一天!
二、成员尽量的统一编码风格,或用相同的格式文件,在保存之前先format,可以打开save action里面的format选项,每次保存都会自动format,这样在提交代码时就不会出现过多的无用更改。
三、每次提交,都要添加一定的注释信息,这样可以很方便的通过历史记录来查看。
四、学会用ignore命令,没必要提交的文件都打上忽略标记,如maven工程中的target目录,还有一些点开头(.xxx)的文件等等。
总结
工欲善其事,必先利其器!好的工具会让你事半功倍,而学会用好的工具才会让你如虎添翼!
程序员入职第一课,你都Get了吗?
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!