SVN版本控制器相关知识

一. 版本控制

1.1. 疑问

  1. 到底什么是版本控制软件?
  2. 我们为什么要使用版本控制软件?
  3. 协作开发过程中,代码应该存放在哪里?
  4. 协作开发过程中,领导要看项目怎么办?

1.2. 什么是版本控制

不知道你们有没有考虑过这种问题?公司的程序员在开发项目的时候,每个人开发的模块都是不一样的,那么他们开发完成以后,如何将各自的代码整合在一起呢?

这个时候呢?就引入了一个概念叫版本控制。

所谓的版本控制你可以通俗的理解成,它是软件项目开发过程中用于储存我们所写的代码以及记录修改历史的软件。 

1.3. 为什么要使用版本控制工具

版本控制的目的是实现团队协同开发、提高开发效率。其目的在于对软件开发过程中文件或目录的修改过程提供有效的追踪手段,保证在需要时可回到旧的版本,避免文件的丢失。也就是说版本控制软件可以保护你的代码。

1.4. 常用的版本控制软件有哪些

  1. CVS-开启版本控制之门
  2. SVN-集中式版本控制之王者
  3. GIT-分布式版本控制之伟大作品
  4. Mercurial-分布式版本控制软件,学习成本比GIT低,功能完善(比GIT少一些非常不常用的软件)

目前使用最多的版本控制工具是SVN和GIT

 

二、SubversionSVN

2.1. 什么是svn

SVN的全称叫做Subversion,它是一个自由,免费,开源的版本控制系统

大家注意一下:SVN指的不是一个单一的软件,而是多个软件组合而成的一套系统。就像大家的php开发环境一样,是由多个软件组合而成的。

2.2. SVN的工作流程

在讲svn的使用之前我们先来搞懂我们svn的工作流程:

SVN需要在服务器上创建一个代码仓库,这个代码仓库用来存储我们开发的代码,开发人员第一次进入项目开发的时候,需要将代码仓库中的代码下载(checkout)到本地。然后开发人员在本地修改了代码以后,使用svn客户端将修改的代码提交(commit)到代码仓库。

2.3. 使用SVN的前提

安装一个svn服务器(VisualSVN-Server)

安装一个svn客户端(Tortoisesvn)

SVN服务器:运行SVN服务的电脑,需要在上面创建代码仓库。

SVN客户端: 安装在开发人员的电脑上,用来提交和更新代码。

 

三、VisualSVN-Server使用(了解)

3.1. VisualSVN Server介绍

VisualSVN ServerSVN的一个服务端,集成了Apache,简化了手动配置的繁琐步骤, 可以通过http访问。

3.2. 下载安装

下载https://www.visualsvn.com/server/

 

3.3. 使用VisualSVN Server掌握

  1. 创建代码仓库

 

    2、添加用户

 

 3、添加用户组

 

  4、用户授权

 

四、SVN的目录约定掌握

  1. SVN的目录约定掌握
  2. /trunck:开发主线
  3. /branches:分支
  4. /tags:标签副本(一旦创建,不允许修改)

如果项目功能模块少的话,一般就直接在trunk上开发,如果模块很多就需要创建分支,在分支上来开发。

 

五、SVN客户端(Tortoisesvn)使用

5.1. 什么是Tortoisesvn

Tortoisesvn:SVN客户端程序。

5.2. 下载安装

官网http://tortoisesvn.tigris.org/

5.3. Tortoisesvn功能介绍

5.3.1. 工作开发流程(重点)

1.项目经理创建或import导入项目到代码仓库

2.开发人员第一次进入项目,需要checkout检出代码

 

 

5.项目完成后export导出项目代码

项目开发过程中,主要就是使用commitupdate

5.3.2. 常用命令介绍(重点)

  

  1. Import 导入项目初始代码到代码仓库
  2. Checkout检出代码到本机
  3. Commit 提交改动到代码仓库
  4. Update 从代码仓库更新到本机
  5. Export 导出

5.3.3. 其他功能介绍(了解)

  1. 删除:delete

删除文件或目录,不能直接用Windows的删除命令来操作,那样只是没有显示出来,实际并没有删除,在更新后,删除的文件又会被更新出来的。要想从库中 删除,必须选中你要删除的内容,TortoiseSVN delete,这样才会将这个文件标记成要删除的。确认需要删除后,使用前面所讲的提交命令,就会真正的在库中删除了。

   2、重命名:rename

重命名也不能直接用Windows的重命名命令来操作,必须选中你要重命名的文件,TortoiseSVN rename。修改后提交就可以更新到仓库。

改名的处理方式相当于新增了一个以新名称命名的文件,原名称命名的文件进行了删除。

   3、还原:revert

在未提交之前,你对前面做的操作反悔了,可以使用revert来恢复。

   4、检查更新:Check for modifications

① 此功能可以显示你所做的修改有哪些还没有提交的。② 还可以看到版本库里的改动,即别人提交了哪些文件的改动,你还没更新到本地

   5、忽略提交:  将不需要提交到文件添加到忽略列表中.

 

5.4. 解决冲突问题(重点)

冲突产生的原因:同一个文件被多个开发人员同时修改,就会出现冲突问题。

 

先更新: 将服务器上最新的代码更新到本地

服务器仓库中的代码可能和本地冲突,解决冲突后再提交

在实际的工作中:

在提交(commit)之前,先更新(update)

5.5.  分支(了解)

什么是分支

分支是用来将特性开发绝缘开来的。通常在其他分支上进行开发,完成后再将它们合并到主分支上。

 

5.5.1. 创建分支

 

5.5.2. 切换分支

 

5.5.3. 合并分支

 

5.6. TortoiseSVN图标(了解)

 

 

部分图标的说明:

normal:状态正常

modified:对本地的副本做了修改,需要提交到服务器

conflicted:有冲突

readonly:文件是只读的,要修改必须先获取锁

locked:获得锁

deleted:计划从版本库中删除

added:已被计划纳入版本控制

non-versioned:未纳入版本控制

 

5.7. 常见问题

5.7.1. 不显示svn的图标

点击SVN客户端的安装程序选择修复,修复完以后重启电脑就会出现svn的图标。

 

5.7.2. 全是英文看不懂

安装版本控制软件包中的汉化程序。

 

然后右键选择TortoiseSVN -> Settings

 

点击了Settings以后会出现下面这个窗口,然后选择中文简体,在确定就可以了。

 

5.7.3. 不显示checkout

出现这个问题首先应该看下当前所处的目录是否存在已经checkout过的目录中,如果当前目录已经checkout过了,是不会显示checkout的,但是会显示 SVN updateSVN Commit

如果还是不存在的话,在设置中找到常规

 

将检出项勾选上,即可。

5.7.4. 安装VisualSVN-Server的时候出现不是有效的MOF文件错误

 

这个问题主要是在安装SVN服务端的时候会出现,出现这个问题的原因有很多,比如操作系统的问题,服务端和和客户端安装在了同一个目录等等,解决办法下载电脑管家清理注册表,卸载后重启系统重新安装,必要时重新安装操作系统(不推荐这样做可以使用其它同学的代码仓库)。

5.7.5. 代码更新不下来

需要确认一下,代码的仓库地址是否正确,用户名和密码是否正确,代码石油有更新代码仓库等等。

5.7.6. 上传文件以后图标不改变

这个问题跟电脑的反应速度有关,有的电脑一更新图标就会改变,有的需要等很久才会改变。

5.7.7. 不会使用

第一次使用svn需要使用checkout将代码仓库中的代码下载到自己的本地,然后修改了代码以后(如果有添加新的文件就需要使用add将新的文件添加到版本计划中),要将代码仓库中最新的代码更新到本地(这个操作是防止在你修改代码的这段时间中其它的开发人员又提交过了代码),更新下来了以后,在将你的代码使用SVN Commit提交到代码仓库中。

 

六、什么是Git

Linus的第二个伟大作品。2005年由于BitKeeper软件公司对Linux社区停止了免费使用权。Linus迫不得己自己开发了一个分布式版本控制工具,从而Git诞生了。

七、Git和SVN的区别

GitSVN最主要的区别在于Git是属于分布式的,而SVN是属于集中式的。

Git在没有网络的情况下也可以提交代码,但是SVN就必须要在有网络的情况下才能工作。

 

 八、Git的安装

Git不需要单独的服务器来安装只需要在自己的电脑上安装git就可以了。

 

安装开发软件都使用管理员运行.

 

九、TortoiseGit

由于git命令操作非常不方便,所以我们使用tortoisegit软件来操作git

9.1. 安装tortoisegit

安装的过程中, 选择TortoisePLink

 

设置用户信息

 

9.2. 项目流程(重点)

1.项目经理创建代码仓库git init  --bare

2.开发人员第一次开发git clone从中心服务器项目从克隆出一份最新的仓库

9.3. 创建代码仓库:(只需要一次)

项目立项的时候需要创建一个代码仓库供所有的人上传和下载代码使用。

执行次数: 项目创建时只需要一次. 

选择一个目录作为仓库,然后执行

 

--bare说明如果该项目仓库只作为远程代码仓库,不允许使用git直接操作该项目,只保存最新的代码让其他人同步

9.4. 克隆项目

新的项目成员需要参与开发该项目, 需要从远程代码仓库中克隆出一份最新的仓库到开发电脑上.

执行次数: 新参与开发成员只需要一次

 

注意:

克隆出来的仓库目录也包含了我们的工作开发目录和本地仓库

9.5. 演示修改或者添加文件

直接在克隆出来的项目中, 开发人员可以添加或者修改代码文件(进行项目开发)

执行次数: 多次

 

9.6. 将本地仓库推送到远程

 

9.7. 将远程仓库中的改变拉取到本地中

 

9.8. Git菜单

 

十、分支(branch)

10.1. 创建分支

 

10.2. 切换分支

 

10.3. 将修改推送分支上

 

10.4. 将远程分支拉取到工作区中

如果发生和本地冲突,就解决冲突

10.5. 合并分支

 

将本地分支1合并到 当前工作区中.

git手册:

http://www.yiibai.com/git/git_pull.html

http://github.com

原文地址:https://www.cnblogs.com/sanqiyi/p/6663897.html