代码管理工具(版本控制工具)
代码管理工具有SVN、git等
SVN:除了可以用来管理代码,也可以用来管理文件。
趋势:SVN –》git
自动化项目发布:
Git –》SSH下载代码 –》Maven编译 –》war ->tomcat(scp source target)
不管是SVN还是Git,我们都可以通过图形化界面客户端来操作。
使用代码管理工具的好处:
(1)自动化项目发布
(2)更好的管理项目,给不同的开发人员不同的权限。限制读、写的权限。
(3)让代码更安全
记录每次开发中对 谁对 那个文件 干了什么
SVN/git有权限管理,普通的开发人员,可以修改代码,也可以删除,但是SVN会记录你每次所有的操作,我们可以使用SVN恢复到你改之前的状态。
SVN介绍
组成结构
SVN服务、SVN客户端
SVN service
(1)一般有公司的运维人员安置部署好,开发人员只管使用就好了,
(2)在企业中,不会去使用免费SVN service,一般都是自己搭建,安全
(3)上班第一天:
分配企业邮箱
SVN账号/密码,链接地址
(4)使用免费的SVN Service
SVN客户端
Checkout:检出
导出+建立关系(SVN能检测到你干了什么)
关系:本地 + SVN服务的关系
Update
更新,将SVN服务器的代码,更新到本地。
更新有可能导致代码冲突。
什么时候会冲突:
多个人修改了同一个文件的同一行。
Commit提交
执行commit之前,先执行update命令,确保本地文件是最新的,
先更新再提交。
有问题的代码,千万不能提交。导致整个项目运行不起来
Show log:查看日志
可以看到谁 对 那个文件干了什么
Revert:放弃本次修改
会将代码回滚到上一次更新之前,撤销你的操作。
谨慎操作。
Export:导出
就是下载代码,不能提交的,
Tag:打目标
开发完1.0版本之后,打Tag,将1.0版本的代码进行归档(备份)
接着开发1.1,。。。。第5天,发现1.0版本有问题???在1.0的版本上进行修改。
Branch:打分支
开发一个新版本10天,有一个功能A有难度,可能在10天没法完成,如果10内功能A完成了,就一起上线,否则功能A不上线,其他功能先上
打一个分支出来,在分支上开发功能A,如果10天内开发完成了,将分支合并到主干。
Merge:合并分支
解决冲突
原因:
多个人修改了同一个文件的同一行
解决:
在执行update操作的时候,可能会发生冲突,但是发生冲突之后,一定要解决之后才能提交代码。
(0)执行update命名的时候,如果有冲突,是有提示的。
(1)先知道,你和谁冲突(查看日志)
(2)找到对应的冲突的文件。
找出冲突的地方,搜索“===”
(3)沟通讨论,决定谁对的,修改代码
(4)告知SVN,我解决冲突了
(5)提交最新代码
SVN使用经验
什么时候提交,什么更新
(1)上班干活之前 更新 代码
(2)下班之前,提交代码
(3)有问题的代码,千万不能提交
(4)谁发现冲突,谁解决
(5)执行commit之前,先执行update命令