公司中的源代码管理工具包含svn和git,svn的使用远远大于git。
svn基本操作:
一、在服务器创建代码仓库;
二、先下载服务器已经有的东西下载到本地,在本地初始化项目,再把初始化项目提交到服务器,其他人再在服务器下载代码,进行协同开发;
基本命令:
svn checkout 服务器地址 --username = 用户名 --password = 密码
svn commit -m "注释"
svn update 更新代码
注意:
checkout只需要做一次;
每天下班前:commit "可运行版本"
每天上班前:update前一天所有代码
使用环境
要想利用svn管理源代码,必须得有2套环境
服务器
用于存储客户端上传的源代码
可以在Windows上安装Visual SVN Server
大部分情况下,公司的开发人员不必亲自搭建SVN服务器
客户端
上传本地的源代码到服务器,或者更新服务器的代码到本地保持同步
可以在mac上使用命令行、Versions、Cornerstone、Xcode
开发人员属于客户端的角色
多人开发中的冲突解决
out of date:文件过期
什么情况下不能提交代码:当本地的版本号小于服务器的版本号时代码是不能提交
Conflict冲突
(p)postpone :解决冲突,最好选择这个,
(mc)mine-conflict:当发生冲突的时候,使用我的代码覆盖服务器代码
(tc)theirs-conflict:当发生代码冲突的时候,使用服务器的代码覆盖掉我本地的代码
开发中先update再commit这样能避免一些冲突。
<<<<<<<.mine
我的代码
==========
<<<<<<< .r11
服务器的代码
打开冲突的文件,删除添加的以上符号,再用命令行删除.mine和.h_r版本号解决冲突
删除多余的文件的命令是:
svn resolved 冲突的文件
版本回退
可以使用svn help来查看svn的所有命令
svn log能看到svn的所有版本
比如想回退到r2046这个版本,使用如下命令:
svn update -r 2046
到目前为止,只是本地的代码回退了,此时服务器的代码还没有回退
想要服务端的代码也退回到指定的版本,这时再次更新代码就会因为版本不同而冲突,然后提交本地代码到服务器,覆盖掉服务器的代码。