从其它平台迁移而来
背景
一般情况下,企业内部多数是使用SVN
来进行版本控制的,原因通常也就两个字——简单:
-
安装简单,无论服务端还是客户端
-
操作简单,即使非技术人员也能很快学会
-
管理简单,建目录、开账户、分权限,基本就能完成95%以上的需求
SVN
是很强大的,但是使用者的水平差距也是很巨大的,结果就是多数情况下只有一个分支,大家都往里面各种提交,当然,有好好管理的不含在内。
不过,用过git
的人,尤其是开发人员,估计都会喜欢git
多一些,那么,同时使用SVN
和git
就会爽很多。
以下就以企业内使用SVN
,开发者使用git
为例进行说明,其中:SVN
遵守企业内的版本控制使用工作流程,git
遵守git类的工作流程。
环境配置
SVN
以使用ToroiseSVN
为例:
- 任意文件夹中(最好是非
SVN
项目,减少菜单干扰)右键
->ToroiseSVN
->设置
->常规设置
->Subversion
->全局忽略样式
(全局设置不会提交到版本库,避免对仓库信息的修改而影响到别人),在原有基础上追加以下内容:
|
|
- 拉取
SVN
代码
git
-
配置
git
环境 -
在要使用
git
的SVN
项目下建git
版本库的初始化
|
|
-
编写
.gitignore
文件,配置常规开发需忽略的文件,再加上SVN
的版本库信息.svn/
-
再次拉取
SVN
代码,确保代码最新 -
把文件增加进
git
库
|
|
- 提交初版代码
|
|
工作流
分支
-
master
:主分支,与SVN
保持一致 -
dev
:开发主分支,主要用于合并开发完成的内容 -
...
:任务分支(含BUG修复),具体的开发任务,开发完成后要合并到dev
具体流程
---
title: SVN+git工作流程
---
graph TD
subgraph m[master分支流程]
direction TB
m1[切到master分支]
m2[检出SVN代码]
m3[git提交]
m4[合并dev代码]
m5[SVN提交]
m1 --> m2 --> m3 -->
m4 --> m5
end
subgraph d[dev分支流程]
direction TB
d1[切到dev分支]
d2[合并工作分支内容]
d3[合并master分支内容]
d4[根据情况调整]
d5[提交]
d6[切回master]
d1 --> d2 --> d4
d1 --> d3 --> d4 --> d5 --> d6
end
subgraph w[工作分支流程]
direction TB
w1[新建/切到工作分支]
w2[根据情况合并dev分支内容]
w3[开发]
w4[提交]
w5[根据情况切对应分支]
w1 --> w2 --> w4 --> w5
w1 --> w3 --> w4
end
m3 -.-> d -.-> m4
d1 -.-> w -.-> d2
注意:必须在master分支才能进行SVN的检出操作!