升级版Excel,千亿级大厂新选择:吊打金蝶用友?完胜SAP Oracle?-英雄云拓展知识分享
125
2023-10-26
【摘要】 本书摘自《Java架构之完美设计 实战经典》一书中第3章,第1节,由颜廷吉编著。
3.1.1 代码管理工具
1. 概述
在IT行业,新旧交替的速度之快往往令人咋舌,用不了多久,就会发现曾经大红大紫 的技术已经成了明日黄花。新技术、新工具层出不穷,如果自己不与时俱进,就会渐渐被时 代所淘汰。
在Java几十年的发展过程中出现过CVS、SVN 以及 GIT等文件管理工具,其中CVS 已经退出历史舞台, SVN 也在渐渐被 GIT 所代替(推荐一个较好的 GIT 学习网站: https://backlog.com/git-tutorial/cn/)。无论技术如何革新,基本的代码管理原则与思想是 不变的。
1)代码提交的最低要求是无编译错误。
2)填写本次提交概述。
3)避免提交无用文件。
并不是本地所有的文件都需要提交服务器进行管理(非最终成果文件或者动态编译文 件以及与本地资源相关文件等不需要提交)。 一旦提交就会和其他的文件产生冲突,导致无 法正常使用。解决的方案就是在“.ignore”文件里,写上非提交文件的内容。例如:
# Maven #
target/
# Eclipse #
.settings/
.classpath
.project
2. SVN 对比 Git
程序员对大名鼎鼎的SVN 估计没有不知道的,但是在使用中是否碰到过以下问题?
1)没有遵守约定俗成的三个顶级目录结构 (branches、tags、trunk)。
2)如何正确地反删除(直接添加删除的文件是不正确的)。
3)SVN 管理员如何对版本库进行管理(如撤销不当提交,修改错误的提交说明等)。
4)版本库的安全问题(如何备份)。
Git工具的出现不但解决了以上这些问题,还具有以下优点:
(1)具有强大的分支功能
Git 可以很容易地对比两个分支,知道一个分支中哪些提交尚未合并到另外一个分支。 而SVN 却没有,且SVN 的分支做得不够彻底,对于分支的最基本的提交隔离就没有实现 (SVN 中一次提交可以同时更改主线和分支中的内容)。
(2)具有清晰的权限管理
Git 可以实现细粒度的权限管理,在企业中使用典型角色划分,见表3-2。根据项目需 求可以酌情选择必要的权限等级。
(3)Git 可以实现更好的发布控制
针对同一个项目, Git可以设置不同层级的版本库(多版本库),或者通过不同的分支 (多分支)实现对发布的控制。
1)设置只有发布管理员才有权限推送的版本库或者分支——用于稳定发布版本的 维护。
2)设置只有项目经理才有权推送的版本库或者分支 用于综合测试。
(4)隔离开发与审核
如何对团队中新成员的开发进行审核呢?在Git服务器上可以实现用户自建分支和自建 版本库的功能,这样团队中的新成员既能将本地提交推送到服务器以对工作进行备份,又能 够方便团队中的其他成员对自己的提交进行审核。
审核新成员提交时,从其个人版本库或个人分支获取提交。可以从提交说明、代码规 范、编译测试等多方面对提交逐一审核。
(5)更好的冲突解决
因为Git基于对内容的追踪而非对文件名的追踪,所以遇到一方或双方对文件名更改 时,Git 能够很好地进行自动合并或辅助合并。而SVN 遇到同样问题时会产生树冲突,解决 起来很麻烦。
(6)版本库的安全性
SVN 版本库安全性很差,这是管理员头痛的问题之一。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们 18664393530@aliyun.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~