SVN是什么?SVN作用?

# SVN是什么?
代码版本管理工具

# SVN作用?
1:记住每次的修改
2:查看所有的修改记录
3:恢复到任何历史版本
4:恢复已经删除的文件

SVN和Git比,有什么优势

1:使用简单,上手快
2:目录级权限控制,企业安全必备
3:子目录checkout,减少不必要的文件检出

主要应用

1:开发人员用来做代码的版本管理
2:用来存储一些重要文件,比如合同
3:公司内部文件共享,并且能按目录划分权限

SVN仓库

推荐:svnbucket.com,SVN桶
现在最好用的SVN服务

安装SVN客户端

Windows:TortoiseSVN   
Mas:Cornstone

注册和登录

官网地址:​​https://svnbucket.com/​​​

svn使用,新手教学,快速上手_版本控制

svn使用,新手教学,快速上手_svn_02

svn使用,新手教学,快速上手_二进制文件_03

创建项目仓库

svn使用,新手教学,快速上手_版本控制_04

svn使用,新手教学,快速上手_二进制文件_05

svn使用,新手教学,快速上手_解决冲突_06

下载项目到本地(注意:记得安装TortoiseSVN)

svn使用,新手教学,快速上手_版本控制_07

svn使用,新手教学,快速上手_解决冲突_08

svn使用,新手教学,快速上手_解决冲突_09

svn使用,新手教学,快速上手_二进制文件_10

svn使用,新手教学,快速上手_版本控制_11提交文件到线上项目仓库

svn使用,新手教学,快速上手_二进制文件_12

svn使用,新手教学,快速上手_svn_13

svn使用,新手教学,快速上手_版本控制_14

svn使用,新手教学,快速上手_版本控制_15

svn使用,新手教学,快速上手_解决冲突_16

svn使用,新手教学,快速上手_解决冲突_17

撤销本地修改

svn使用,新手教学,快速上手_svn_18

svn使用,新手教学,快速上手_解决冲突_19

svn使用,新手教学,快速上手_版本控制_20

svn使用,新手教学,快速上手_svn_21

svn使用,新手教学,快速上手_版本控制_22

svn使用,新手教学,快速上手_二进制文件_23

撤销已提交内容

svn使用,新手教学,快速上手_二进制文件_24

svn使用,新手教学,快速上手_版本控制_25

svn使用,新手教学,快速上手_二进制文件_26

svn使用,新手教学,快速上手_二进制文件_27

svn使用,新手教学,快速上手_解决冲突_28

svn使用,新手教学,快速上手_解决冲突_29

svn使用,新手教学,快速上手_版本控制_30

svn使用,新手教学,快速上手_版本控制_31

svn使用,新手教学,快速上手_解决冲突_32

svn使用,新手教学,快速上手_版本控制_33

svn使用,新手教学,快速上手_解决冲突_34

svn使用,新手教学,快速上手_版本控制_35

svn使用,新手教学,快速上手_版本控制_36

svn使用,新手教学,快速上手_解决冲突_37

恢复到指定版本

svn使用,新手教学,快速上手_svn_38

svn使用,新手教学,快速上手_解决冲突_39

svn使用,新手教学,快速上手_解决冲突_40

svn使用,新手教学,快速上手_二进制文件_41

svn使用,新手教学,快速上手_二进制文件_42

svn使用,新手教学,快速上手_解决冲突_43

添加忽略

svn使用,新手教学,快速上手_版本控制_44

svn使用,新手教学,快速上手_二进制文件_45

svn使用,新手教学,快速上手_svn_46

svn使用,新手教学,快速上手_版本控制_47

svn使用,新手教学,快速上手_版本控制_48

svn使用,新手教学,快速上手_版本控制_49

svn使用,新手教学,快速上手_版本控制_50

svn使用,新手教学,快速上手_二进制文件_51

svn使用,新手教学,快速上手_解决冲突_52

解决冲突

# 什么情况容易发生冲突
多个人修改了同个文件,同一行
无法进行合并的二进制文件

# 怎么避免冲突?
经常更新同步下他人的代码
二进制文件不要多个人同时操作

添加成员

svn使用,新手教学,快速上手_解决冲突_53

svn使用,新手教学,快速上手_二进制文件_54

svn使用,新手教学,快速上手_svn_55

更改SVN用户登录,下载项目

svn使用,新手教学,快速上手_版本控制_56

svn使用,新手教学,快速上手_解决冲突_57

svn使用,新手教学,快速上手_解决冲突_58

svn使用,新手教学,快速上手_svn_59

svn使用,新手教学,快速上手_版本控制_60

提交修改同一个文件

svn使用,新手教学,快速上手_svn_61

svn使用,新手教学,快速上手_解决冲突_62

svn使用,新手教学,快速上手_解决冲突_63

svn使用,新手教学,快速上手_二进制文件_64

svn使用,新手教学,快速上手_解决冲突_65

svn使用,新手教学,快速上手_二进制文件_66

解决冲突(普通文件)

svn使用,新手教学,快速上手_版本控制_67

svn使用,新手教学,快速上手_版本控制_68

svn使用,新手教学,快速上手_svn_69

svn使用,新手教学,快速上手_二进制文件_70

svn使用,新手教学,快速上手_二进制文件_71

svn使用,新手教学,快速上手_svn_72

svn使用,新手教学,快速上手_解决冲突_73

svn使用,新手教学,快速上手_版本控制_74

svn使用,新手教学,快速上手_二进制文件_75

svn使用,新手教学,快速上手_二进制文件_76

svn使用,新手教学,快速上手_svn_77

解决冲突(二进制文件)

svn使用,新手教学,快速上手_二进制文件_78

svn使用,新手教学,快速上手_解决冲突_79

svn使用,新手教学,快速上手_版本控制_80

svn使用,新手教学,快速上手_svn_81

svn使用,新手教学,快速上手_svn_82

svn使用,新手教学,快速上手_版本控制_83

svn使用,新手教学,快速上手_二进制文件_84

svn使用,新手教学,快速上手_版本控制_85

svn使用,新手教学,快速上手_解决冲突_86

svn使用,新手教学,快速上手_解决冲突_87

svn使用,新手教学,快速上手_版本控制_88

svn使用,新手教学,快速上手_版本控制_89

svn使用,新手教学,快速上手_二进制文件_90

svn使用,新手教学,快速上手_解决冲突_91

svn使用,新手教学,快速上手_版本控制_92

svn使用,新手教学,快速上手_二进制文件_93

svn使用,新手教学,快速上手_版本控制_94

svn使用,新手教学,快速上手_svn_95

svn使用,新手教学,快速上手_二进制文件_96

svn使用,新手教学,快速上手_解决冲突_97

svn使用,新手教学,快速上手_解决冲突_98

svn使用,新手教学,快速上手_版本控制_99

svn使用,新手教学,快速上手_版本控制_100

分支

# 什么时候需要分支?
隔离线上版本和开发版本
大功能开发,不想影响其他人,自己独立开发个分支去开发

# SVN经典目录结构
trunk branches tags

创建经典目录

svn使用,新手教学,快速上手_二进制文件_101

svn使用,新手教学,快速上手_svn_102

svn使用,新手教学,快速上手_二进制文件_103

svn使用,新手教学,快速上手_解决冲突_104

创建分支

svn使用,新手教学,快速上手_二进制文件_105

svn使用,新手教学,快速上手_svn_106

svn使用,新手教学,快速上手_解决冲突_107

svn使用,新手教学,快速上手_svn_108

svn使用,新手教学,快速上手_二进制文件_109

svn使用,新手教学,快速上手_解决冲突_110

svn使用,新手教学,快速上手_版本控制_111

单独分离主干和分支

svn使用,新手教学,快速上手_二进制文件_112

svn使用,新手教学,快速上手_版本控制_113

svn使用,新手教学,快速上手_二进制文件_114

svn使用,新手教学,快速上手_解决冲突_115

svn使用,新手教学,快速上手_svn_116

svn使用,新手教学,快速上手_版本控制_117

svn使用,新手教学,快速上手_解决冲突_118

svn使用,新手教学,快速上手_版本控制_119

合并分支的修改到主干trunk

svn使用,新手教学,快速上手_二进制文件_120

svn使用,新手教学,快速上手_二进制文件_121

svn使用,新手教学,快速上手_解决冲突_122

svn使用,新手教学,快速上手_svn_123

svn使用,新手教学,快速上手_解决冲突_124

svn使用,新手教学,快速上手_二进制文件_125

svn使用,新手教学,快速上手_解决冲突_126

svn使用,新手教学,快速上手_版本控制_127

svn使用,新手教学,快速上手_svn_128

切换分支

svn使用,新手教学,快速上手_解决冲突_129

svn使用,新手教学,快速上手_解决冲突_130

svn使用,新手教学,快速上手_svn_131

svn使用,新手教学,快速上手_二进制文件_132

svn使用,新手教学,快速上手_svn_133

查看仓库结构

svn使用,新手教学,快速上手_版本控制_134

svn使用,新手教学,快速上手_二进制文件_135

代码暂存

# 有什么用?
1:代码改了很多,突然需要紧急修复一个BUG,但是代码还没有写完,不能提交
2:代码重构了很多,突然需要发布新版本,但是代码跑不起来,不能提交

svn使用,新手教学,快速上手_解决冲突_136

svn使用,新手教学,快速上手_解决冲突_137

复杂代码合并

# 情况
主干trunk开发新功能,改了很多
分支是线上版本,修复了很多bug
两个分支的代码时间太久了差异很大,无法直接分支合并或者指定记录提交代码

使用BeyondCompare,这里不演示,过于麻烦,自己下载软件尝试