二者都有图形化工具,作为开发了解过程即可
文章目录
1. svn
1. 概念
1. 介绍
SVN是Subversion的简称,开源的集中式管理代码的版本控制系统
2. 原理
原理是把代码都保存到一个固定的位置(仓库),每次从这个位置拷贝更新代码,进行编辑;再把修改后的代码提交到该目录中。多人协作开发也是如此。因此需要一个类似Oracle或者Mysql的服务器用于保存和管理库文件(要保存的代码等文件)的服务端——VisualSVN Server。还需要一个用户的操作端,用于提交更新检出代码,常用的有idea的Svn插件,以及TortoiseSVN(小乌龟)。
3. 术语
- repository:仓库,源代码统一存放的地方
- checkout:提取,第一次需要从仓库checkout一份代码
- commit:提交,修改代码后需要commit到仓库
- update:更新,保持和仓库中代码一致
日常开发:到公司–checkout–几天后,update–修改代码,调试好–commit
如果两个人同时修改同一文件的同一行代码,提示conflict,需要手动merge,重新commit
如果文件没有被svn管理,add添加到svn服务器
delete本地删除,commit后真正从服务器删除
2. 规范
1. 目录规范
建仓库可以选择svn的目录结构
Trunk为主干目录,Branches为开发的分支目录,Tags为发布的版本目录
假设完成1.0版本,打个tags即可
2. 分支与标记
分支的定义规则:Project name+日期时间+功能点
tags的定义规则: Project name+版本号
版本号的规则:xxx.xxx.xxx 第一个:革命性的产品升级版,第二个:新功能版,第三个:修正bug
tags一般只读,不能修改
3. 主干与分支的合并
先保证主干最新(先update),在分支这边merge
2. Git
1. 和svn的区别
svn:集中式版本控制系统,版本库集中放在中央服务器。缺点:容错性差,服务器单点故障
Git:分布式版本控制系统
2. 工作流程
- 从远程仓库克隆Git资源到本地仓库
- 从本地仓库checkout代码再进行代码修改
- 提交前先将代码提交到暂存区
- 提交修改,到本地仓库,本地仓库保存修改的各个历史版本
- 需要和其他成员共享代码,将代码push到远程仓库
3. 工作区和暂存区
1. 概念
工作区working Directory 就是在电脑里能看到的目录,比如repository
版本库:repository目录里的.git
暂存区:版本库中称为stage或者叫index的地方
此外,里面也有git自动创建的第一个分支master,以及指向master的指针head
2. 执行过程
git add:把文件修改添加到暂存区
git commit:提交修改,把暂存区所有内容提交给当前分支
3. 忽略文件或文件夹
工作区根目录下创建.gitignore
文件,把要忽略的文件名填进去
4. 远程仓库
GitHub创建账号
ssh协议
Secure shell安全外壳协议,目的:防止远程管理过程的信息泄露问题
git bash执行命令生成公钥和私钥,在GitHub上配置公钥
之后交互见流程图