代码管理工具
发表时间:2020-10-19
发布人:葵宇科技
浏览次数:44
说明
- 使用代码管理工具(svn、git或者其它)管理代码是一件习以为常的事情,但是只知被动使用,却不知为何使用,容易引出很多异议,特记录下工作中的遇到的异论。
异论
小公司/小团队是否必要使用管理工具
- 事例
- 之前在一家TP_Link出来创业的小团队,公司业务类似于方案商,给别的厂商做项目,因此项目较多,但是在工作中,代码管理竟然不使用管理工具,代码通过复制拷贝的方式来传递,每个人单独负责一些项目以减少代码交互,刚来时未在意,因此未对代码进行管理,工作一段时间后,我认识到这是不合理的,因此时常和领导反馈,但是并没有得到修正,最后反馈次数多了,领导的回答是:你就知道你认为,你认为(我是和他说我认为这是不合理的),我不要你认为,我要我认为,你要用你自己用就好了,你自己管理好就行了,就这么几个人你还能弄错吗?弄错了也是你能力不行。
- 没多久我离职了,交接时被接手的员工骂惨,原因是,刚来时的修改很多我都不记得了,没记录了(后面我使用git进行了管理,前面一段时间的修改记录丢失了)。
- 个人结论
- 代码必须使用代码管理工具管理,就算是小团队,甚至是个人,拿到未做管理的代码或者开始一个新项目,第一步就算添加进版本管理。
使用svn还是Git
- 事例
- 之前在一家华为和腾讯出来创业的团队,公司使用svn管理代码,团队使用时并没有用到过多高级功能,但是随着项目的发展,需要使用到一些高级功能,例如:使用分支,但是由于svn的分支切换以及创建非常麻烦,分支创建相当于重新创建一个仓库,切换分支相当于重新拉取一份代码;在工作中使用svn也遇到一些问题,例如:无法获知所有改动,svn查看修改时默认显示当前目录下的代码修改,不会显示所有修改(可能一些复杂命令可以实现),故容易导致忽略一些代码的修改。
- 因此svn使用过程中不是很愉悦,故学习了git的使用,被git使用震惊到了,感觉就是个人理想中的管理工具;因此推荐给领导使用,领导的回答是:在他眼里,git和svn是一样的,只是一个工具,不要把心思花在工作不相关的事情上。
- 个人结论
- git和svn绝对不一样,svn我使用了多年(至少4年),总的来说git是svn的下一代产品,不是同一代产品,因此尽量选择git,虽然svn也能实现你的需求,但是当你明白自己的需求后,使用git会让你更快捷和方便以及贴心。
- 有些传统公司依然使用svn,可以在代码仓库再git init一个仓库,代码是同一份,使用git管理,需要提交时,再通过svn提交。
个人总结
代码管理工具的作用
- 备份代码
- 使用代码管理工具可以对代码进行备份,本地备份是不可靠的,电脑出问题容易导致代码丢失,最好保存多份,但是手动或其它方式备份容易出错。
- 记录修改
- 记录修改了什么,什么时候修改的等信息,没有修改记录,时间长后容易遗忘。
- 加快效率
- 工具可以加快工作效率,特别是需要分支,有冲突的情况时,好的工具比差的工具效率高。
- 避免出错
- 需要分支时,有时会使用拷贝的方式,可能出现代码复制拷贝了多份,未及时删除未使用的,时间长未修改后,没有修改记录,不清楚哪份是正确的。
git与svn比较
- svn和git最大的区别是:svn 是集中式的,而git 是分布式的,有人说你明白了这点,svn与git 的区别就明白了一大半。
- svn是集中式的:文件是服务器和 本地都有一份,但是代码的管理,都是由服务器来做的,意味着你只有连上svn服务器后,才能进行代码管理,网络断开后,svn无法做任何事,虽然一般是在局域网内使用,但是如果离开该局域网就无法做任何管理工作了。
- git是分布式的:文件是服务器和 本地都有一份,可以推送给别人,几乎所有的操作都可以在本地操作。
- git服务器和普通用户是平等的,甚至服务器是可以取消的,而svn服务器是核心,不可或缺的。
- 在断网的情况下,想要进行代码管理只能使用 git。
- svn更适合文档管理(可以单独下载任意文件),而git更适合代码管理(不能下载当个文件,有办法实现,但是比较麻烦)
- svn不是整个项目做管理,每个目录都有一个.svn来保存记录,查看修改默认只是显示当前目录的更改,因此你不能方便的查看整个工程的改动。
- svn太老了,git还年轻,svn没有多少扩展的工具,git有很多强大方便的扩展工具。
- …