首页 > 多人如何高效协同coding

多人如何高效协同coding


git还有sourcetree

http://www.sourcetreeapp.com/

项目管理工具有很多了。trello,tower。

https://trello.com/

https://tower.im/


首选git, 代码冲突是你们的工作有交集的的地方, git 可以自动对比,进行代码合并, 如果都对同一处修改就只能人工合并了.


git,约定好编码习惯,初期合理的注释,不要轻易修改小伙伴的代码,即使你有强迫症


用git。你可以选择从Github或者CSDN CODE开始尝试


多人还是git好一些,确定权限和提交过程都比较方便一些。SVN也并不是不可取,但只适合少数人或者个人的开发者的说。CSS的话也可以利用不同的branch来进行分开的,不过最好还是一人一块的。多个人干同一个事情不是什么明智的事情啊


做一些补充。

不知不觉就跟着前几个答案走进版本管理这个节奏里了。

版本管理的同时也不能忘记:与版本管理同样重要的,是项目的进度管理:

良好的项目进度管理,是避免各自工作“撞车”的不二法门。

这个系统可以不是成型的系统——如果项目足够小,开发者口头或开会商量一下就行了。不过如果项目大了,就一定要用。我了解不多,只推荐一个trac,这也是WordPress的代码分发与bug管理采用的系统。

不过trac似乎还是偏重代码和bug管理。工作计划管理,可能还需要别的工具?

还是那个原则:高内聚,低耦合。如果能够合理管理避免撞车,那么每个人修改的东西,一定会比较严格的分布在各自不同的模块和文件中。做好自己的事情是第一位的,与其他模块建立联系是第二位的。所以不同的修改之间发生了冲突就要敏感的感觉到:冲突一定不会涉及太多的代码,尤其不会涉及各自业务逻辑的主体部分。

如果在冲突的合并处理中,发现违反了这个直观感觉,就一定要审查双方的实现,即使纠偏,让各自的代码之间解除不必要的纠缠。一定不要拖延到问题越来越复杂,最终无法收场。


目前来看git是不二之选。合并-冲突处理机制非常容易维护,事实上不怎么需要有一个明确的项目管理员去主持。

svn的麻烦在于文件锁。因为谁锁文件引发的扯皮,在只有svn的那个年代无数次的发生过。

svn以我的看法,估计只有单人项目时,比git更加方便。

不过git或svn都只是工具。从编程思想上,一定要保持代码的模块化,明确各部分代码分工,必要时使用某种框架。简单的来说,就是功能不存在冲突,分别修改后互不影响的代码,一般不放在同一个文件里。

如果每个代码文件都像一大锅稀粥一样,那……只能说什么版本管理都不是神仙。


你可以试试用 Coding.net 这个支持git,提供代码托管,公私有项目都是免费的,也有项目协作功能,还不错。


回答下

多人协同修改代码,怎么保证代码不冲突?比如某两个前端工程师都编写某个css样式?

这个代码冲突的问题,不是工具能解决的,不管你用svn,还是git。设想一下,两个人同时修改一个文件的同一行代码,怎么可能不冲突?

之前遇到过一个同事,本次提交代码的时候,都会提交一大堆文件,问他为什么不早点提交,他的回答是:怕冲突。

我想说的是,怕冲突的解决办法不是迟迟不提交,反而应该是时时提交,并且时时更新对方的代码。
只有你的代码一直保持和版本库中同步,才能尽可能的避免冲突

试用极限法说明:
你从版本库中checkout出最新的代码,然后一直在上面修修改改,一年没提交。一年之后,你打算提交了,这个时候你的本地work中是一年前的状态,而版本库中早已经面目全非了,这个时候你提交,肯定会有很多冲突,说不定你修改的很多文件,在版本库里都已经不存在了。
另一种情况: 团队中的每个人,每修改一个小的功能点就立即提交,并且更新最新的代码。A修改了index.html中的第一行提交了。如果5分钟后,你也要修改index.html中的第一行,你应该更新该文件到最新版本,在A修改过的基础上再做修改,然后提交,肯定不会冲突。

说了这么多,只是想说,工具不能帮你避免冲突,想避免冲突,应该要有经常更新版本的习惯,这也是新人经常忘记的事情


说一点个人浅见
相比于用什么工具,最重要的,是明确人与人之间的协作机制。明确如何分工、如何交流、如何协调进度,等等。
你在问题中提到

两个前端工程师都编写某个css样式

如果两个人编辑的是同一个文件中的不同的部分,那可以靠工具解决。如果是同一个部分,那说明你们的分工做的不够好。

如果解决了管理上的问题,那就可以考虑用什么工具的问题了。个人强烈推荐 git,前面几位朋友讲的很详细,我不赘述了

【热门文章】
【热门文章】