java提高之版本控制系统

二者都有图形化工具,作为开发了解过程即可

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为发布的版本目录

扫描二维码关注公众号,回复: 6501949 查看本文章

假设完成1.0版本,打个tags即可

2. 分支与标记

分支的定义规则:Project name+日期时间+功能点

tags的定义规则: Project name+版本号

版本号的规则:xxx.xxx.xxx 第一个:革命性的产品升级版,第二个:新功能版,第三个:修正bug

tags一般只读,不能修改

3. 主干与分支的合并

先保证主干最新(先update),在分支这边merge

2. Git

1. 和svn的区别

svn:集中式版本控制系统,版本库集中放在中央服务器。缺点:容错性差,服务器单点故障

Git:分布式版本控制系统

2. 工作流程

  1. 从远程仓库克隆Git资源到本地仓库
  2. 从本地仓库checkout代码再进行代码修改
  3. 提交前先将代码提交到暂存区
  4. 提交修改,到本地仓库,本地仓库保存修改的各个历史版本
  5. 需要和其他成员共享代码,将代码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上配置公钥

之后交互见流程图

猜你喜欢

转载自blog.csdn.net/wjl31802/article/details/92098014