SVN学习整理
一、SVN在Mac上是系统自带的,所以不用自己来安装。
参考文章:
学习目标:
1、SVN的实现原理?
集中式,以服务器为中心;基于复制;
2、SVN的基本操作? 提交、查找、合并、更新
cornerstone
3、SVN使用时的注意事项
<1> 最好有自己的分支,在自己的分支上做修改,最后再合并到主分支上。养成良好习惯,最好一个小时备份一次
一、SVN基本操作
1、提交
svn add <filename> 或者用 . 来添加所有新文件
svn commit -m "" <filename>(省略提交所有文件的更改)
2、更新
svn update <filename> 可更新全部或指定文件
3、检出
svn checkout <address> 指定的文件路径
如果是未指定则在当前目录下且名字一致。
svn checkout <address> name2
最给的目录名会是name2
4、删除与恢复:delete、revert
svn delete <filename>
5、合并 merge resolve
主要针对的是两个分支。
svn merge https://www....
svn commit -M "merge"
合并完远程的分支之后,还要commit之后,与本地关联的远程分支才能够同步。
6、diff 的使用
svn diff -r 699:701 3.txt
7、重命名问题
SVN里面在本地把文件删除,然后再commit,线上不会删除此文件,必须使用svn del file
来删除这个文件,然后再commit才可以。这是与git操作不一样的一个地方。
重命名操作的最好通过图形界面来完成,通过命令行现在还不知道怎么写。
8、revert
svn revert <filename>
二、场景
1、新开一个工程时svn仓库的创建
最基本的三个文件夹:trunk,branchs,tags。分别是开发的主分支,其他分支存放文件夹,打标签文件夹。
2、新建分支和切换分支
用svn copy <原分支地址> <新分支地址> -m “备注信息” 来新建分支
切换分支 svn co <新分支>
3、A修改了文件1,提交后,B在没有update的情况下修改了文件1,然后提交,为什么没有冲突?
当两个人都修改了同一个地方时,会引起冲突。解决的办法是两人商量好最终的代码,然后修改文件。
4、把开发分支合并到主分支上
<1> checkout 开发分支 develop
<2> 修改开发分支
<3> 提交:add、commit
<4> checkout trunk 分支
<5> cd 到trunk 分支
<6> 执行merge,参数为develop_branch的地址
<7> trunk:commit
<8> tag