“是谁提交的代码?”“谁把我的修改覆盖了?”每天早晨,办公室里有没有此起彼伏的叫骂声?

或是别人的代码被你覆盖?被人数落的翻江倒海!亦或是你的代码被人覆盖?心中有过的万马奔腾?

版本控制软件用好版本控制软件中的同步功能,提交代码时再也不会犯错!

提起版本控制软件,这可能是每一个程序员的必修课!从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了吗?

相关文章