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 Server是SVN的一个服务端,集成了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导出项目代码

项目开发过程中,主要就是使用commit和update

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 update和SVN 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的区别

Git和SVN最主要的区别在于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

时间: 2024-12-28 00:40:51

SVN版本控制器相关知识的相关文章

svn版本控制器在vs2013中的使用

  下面记录常用的几种用法:   a) SVN检出 将SVN服务端所保存的数据下载到个人工作平台. 组长上传初始项目后,各组员可以到服务器上检出项目 1. 打开Visual Studio 2010->文件->Subversion->open from Subversion 2. 点击添加URL,输入服务地址: https:// 192.168.89.11:8443/svn/WebServices/ (对应的版本库)选择初始项目的Solution,挑选Local Directory b)

SVN版本控制器的使用说明(详细过程)

SVN使用教程总结  SVN简介: 为什么要使用SVN? 程序员在编写程序的过程中,每个程序员都会生成很多不同的版本,这就需要程序员有效的管理代码,在需要的时候可以迅速,准确取出相应的版本. Subversion是什么? 它是一个自由/开源的版本控制系统,一组文件存放在中心版本库,记录每一次文件和目录的修改,Subversion允许把数据恢复到早期版本,或是检查数据修改的历史,Subversion可以通过网络访问它的版本库,从而使用户在不同的电脑上进行操作. 一:SVN服务器搭建和使用. 1. 

SVN版本控制器

SVN -- subversion ①checkout 拷贝svn资源库的内容②commit 开发完后,提交③update 得到其他人开发的资源 访问svn默认端口3690 安装 下载svn服务器软件http://subversion.apache.org/packages.html 安装Win32Svn,配置path环境变量%Subversion%\bin 配置 1.创建SVN资源库 新建文件夹E:\svnrepos 执行命令svnadmin create E:\svnrepos 2.修改SV

svn常规操作与相关知识

Svn常规操作与相关知识 一.何谓版本控制 它是一种软件工程籍以在开发的过程中,确保由不同人所编辑的同一档案都得到更新,它透过文档控制记录程序各个模块的改动,并为每次改动编上序号,并且编辑错误之后还可以回溯到以前的版本 二.可供我们选择的版本控制系统 1.VCS  (本地版本控制) 2.VSS.CVS(集中版本控制) 3.ClearCase.SVN.Perforce.TFS(集中版本控制) 4.Mercurial(水银/水星).Git(分布式版本控制) 差异: 1.Git和其他版本控制系统的主要

Linux下搭建版本控制器SVN

关于版本控制器,大致可分为集中式和分布式两种. 集中式的版本控制器通常会存在一个中央服务器,主要是用来存放版本库的,(这里暂且先不说分支的事)当我们工作之前,首先需要从中央服务器得到一份最新版本的代码,修改完毕之后,再次推送到中央服务器.集中式的版本控制器有个最大的缺点,就是必须要联网才能工作,同时,一旦中央服务器挂掉,整个项目就全部奔溃,但是用起来确实要方便一些. 分布式版本控制器的优势就很明显了,对于分布式的版本控制器,并没有中央服务器一说,加入该版本控制器的每个人的电脑上都有一个完整的版本

你了解SVN, CVS等版本控制器吗?

版本控制器SVN, CVS是两种版本控制器, 需要配套相关的SVN, CVS服务器, SCM是xcode里面配置版本控制的地方, 版本控制的原理就是A和B同时开发一个项目, A写完当天的代码之后把代码提交给服务器, B要做的时候先从服务器得到最新版本, 就可以接着做, 如果A和B都要提交给服务器, 并且同时修改了同一个方法, 就会产生代码冲突, 如果A先提交, 那么B提交时, 服务器可以提示冲突的代码, B可以清晰地看到, 并作出相应的修改或者融合后再提交.

梳理版本控制器:SVN和Git比较

在日常运维工作中,经常会用到版本控制系统,目前用到最广泛的版本控制器就是SVN和Git,那么这两者之间有什么不同之处呢?今天在此详细记录下: SVN(Subversion)是集中式管理的版本控制器,而Git是分布式管理的版本控制器!这是两者之间最核心的区别. Git不仅仅是个版本控制系统,它也是个内容管理系统(CMS),工作管理系统等.如果你是一个具有使用SVN背景的人,你需要做一定的思想转换,来适应Git提供的一些概念和特征. 先来说说集中式版本控制系统: 版本库是集中存放在中央服务器的,而干

版本控制器 (Svn,Git)

Svn: 集中式版本控制器,首先开发者在开始新一天的工作之前必须从服务器获取代码,然后进入自己的分支开发,开发完成后把自己的分支合并到主分支上进行提交,解决冲突.所有的版本信息都放在服务器上.如果脱离了服务器,开发者基本上可以说是无法工作的. Git:分布式版本控制器,比集中式版本库要安全一些,因为每个人电脑里都有完整的版本库,这样,我们工作的时候就不需要联网了. 区别:先说集中式版本控制器吧,Svn命令: (添加文件)(提交文件(修改文件)(删除文件)(查看日志)(查看文件详细信息)(svn帮

SVN中如何去除版本控制器

SVN,大家都熟悉,做项目都知道,不知道你有没有遇到每次提交的代码的时候,都会把bin和obj自动生成的文件夹提交SVN服务器上 其实这里都不需要提交,每次生成都提交,可能还会容易冲突,如何不让bin和obj不提交呢? 选择不要提交文件 這样就OK,如果还不行,就刷新该文件夹目录,如果还是不行,在操作一遍. 如果你之前已经提交了obj和bin类似的文件,每次更新和上传,都可能会在父类文件夹显示红色感叹号 那我们该如何避免呢? 我们就去除版本控制器! 别着急,很简单,还是看图说话,最清晰. 在程序