您的位置:首页 > 编程语言 > Java开发

【转】Eclipse+Git搭建小型团队开发环境-云端代码和本地代码冲突的处理方法

2017-11-14 10:38 531 查看
转载出处:http://blog.csdn.net/a5503308/article/details/50939990

团队开发最常见的情况

  在团队开发中,最常见的情况就是代码的冲突,当同一行中,云端代码有被自己更新的代码就会出现冲突。一般情况这些冲突会常常出现在一些公共的配置文件中,所以出现冲突最好可以先和修改者协商,再做合并。假如是一些误操作,例如不小心多加了一个空格,那么这里就应该自行解决冲突。

  这个针对Eclipse+EGit这个开发环境做详细的冲突处理方法。

编写冲突文件

首先编写一个会冲突的文件,如下图。






如图,代码会在13行冲突。


解决步骤

  1、先保证自己的代码已经提交到本地仓库,不用push代码上远程,由于远程仓库的代码比本地的更新,GitHub不会允许这样的提交的。图片项目名右边有向下的箭头,证明远程已经有2个commit本地没下载了。





  2、pull远程仓库的代码下来(有冲突的时候,程序就会显示冲突了)



  3、处理冲突(冲突处理过程,关键是后面add index,并且重新提交到本地仓库)



  当我们的冲突处理完并提交后,我们手上的代码就是最新的,并且使无冲突的。现在push代码上去云端就无问题了。图中那么提交冲突的窗口:git staging

原理

  我们稍微说说冲突处理过程的原理:GitHub的是属于远程仓库的,所以要更新远程仓库的数据,并需保证本地分支中的代码都提交到本地仓库。也就是commit所有的数据。这个时候方可pull远程仓库的代码下来。然后假如有冲突,那么这次pull是不完成成功的,程序会把冲突都显示出来。我们解决冲突后,通过git staging把冲突也提交到本地仓库。那么这时候,本地仓库的代码就是没有冲突,比远程仓库代码更加fresh的代码了,所以这时候可以轻易把代码push到远程仓库中。

  当然,我们平时有良好的习惯时,是可以避免不少冲突的。我们要养成先更新代码再进行开发的习惯,一个子功能开发完成后就要及时提交代码。

Q&A

至此,eclipse + egit + github就可以集成一个团队开发环境。

总结一下在搭建团队开发环境下,需求、问题及解决方法:

 Q:团队开发过程,各个模块的人员如何围绕着一个框架进行多任务编码?

 A:首先我们要为围绕着那个框架,为每一个开发者建立一个分支。例如文中提及到的,LLQ开发者。管理员首先要在master主干上,针对开发者建立一个分支。然后开发者通过自己的IDE导入分支,在上面进行开发。其他开发者也可以对该分支进行编辑。

 Q:框架更新的时候,如何应用到其他分支中?

 A:如文中所见《分支合并及冲突处理方法》,框架应用过其他分支,是需要管理员去进行的。当与分支代码发生冲突的时候,应该和开发人员进行沟通,适当更改代码。这里可以提一下关于编码规范:

  1、不要随意在框架的中修改代码,实在需要动框架,应该和框架开发者说一声,由开发者去完成代码的修改。

  2、有限建立新的文件而不是使用原有的文件,例如:我们的一些定义框架属性的.xml文件不应该随意被修改,关于页面配置等.xml文件,分支开发人员应该自行建立。引用方面需要动一下框架的配置文件(例如web.xml配置各种即将被导入spring的xml文件),小动一下总比大动要好。

  3、包类应该根据自己的需求建立,尽量不和原有的包混在一起。

 Q:push代码上云端应注意一些什么?假如发生了冲突应该如何处理?

 A:push代码的时候,首先要肯定我们本地的代码是最新的。所以我们平时打开eclipse进行开发前,都应该先pull云端的代码下来,然后再开始工作。假如实在是遇上了冲突,那么就要按照上一篇的《云端代码与本地代码冲突解决方法》进行解决。总之:push代码前,时刻保证首先的代码是最新的就可以了。

最后

  用了一个很粗糙的办法搭建了一个开发环境。其实在真正的公司里,往往不会有这么麻烦的解决方案的。把这个教程写出来,是希望可以帮到一些同学在宿舍内进行一些小程序开发,在学校提前感受一下合作开发。经过这一次方法的探索,我对Git有了更深刻的认识,其协作开发者的功能确实非常强大。

  我觉得对于小型团队开发环境还是有其它很多样的实现方式的,我这个方法还是有点强硬不灵活,有更好方法的希望大家可以提供一下idea!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐