软件开发工具:第23章 版本控制工具:SVN和Git_第1页
软件开发工具:第23章 版本控制工具:SVN和Git_第2页
软件开发工具:第23章 版本控制工具:SVN和Git_第3页
软件开发工具:第23章 版本控制工具:SVN和Git_第4页
软件开发工具:第23章 版本控制工具:SVN和Git_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、郑州大学信息工程学院第23章 版本控制工具:SVN和Git点击添加文本郑州大学信息工程学院23.1 版本控制基础知识23.2 SVN23.3 Git和GitHub23.4 比较SVN和Git23.5 本章小结23.1 版本控制基础知识版本控制(Revision control)是一种软体工程技巧,籍以在开发的过程中,确保由不同人所编辑的同一档案都得到更新。版本控制软件提供完备的版本管理功能,用于存储、追踪目录(文件夹)和文件的修改历史。常见的版本控制软件包括:Visual Source Safe(简称VSS)、Concurrent Version System(简称CVS)、StarTeam、

2、ClearCase、Subversion(简称SVN)、SourceAnywhere、Git等。其中目前主流的用来进行版本控制的软件为:SVN和Git,本章主要介绍SVN和Git。23.2 SVN23.2.1 SVN服务端1SVN服务端安装Subversion服务器端有VisualSVN和Subversion两种软件,其中VisualSVN分标准版费和企业版软件两种,标准版为免费,企业版收费;因Subversion服务器端配置较为繁琐,VisualSVN的配置比较简单, 我们以VisualSVN标准版为例。VisualSVN Server目前的版本为3.3.1,VisualSVN Server

3、标准版的下载地址为:/server/download/。2SVN服务端使用通过“开始”“VisualSVN”“VisualSVN Server Manager”打开VisualSVN Server的管理配置,如图所示在图中,左侧Users为所有使用VisualSVN Server的进行代码管理开发的用户;Groups为对不同的用户进行分组管理,以便高效的管理用户。Repositories为代码仓库。右击各个节点,选择不同的菜单项,可创建用户、创建用户组、创建代码库。创建完代码库可向该代码库中添加使用代码库的用户或按用户组的方式进行添加使用代码库的用户。其中访存权限为“No Access”、“R

4、ead Only”、“Read/Write”,默认为可读可写权限。23.2.2 SVN客户端1SVN客户端安装Tortoise SVN为免费版,目前版本为1.8.11,本书以Win7下安装Tortoise SVN1.8.11 32b版本为例,说明SVN客户端的安装。下载的网址为:/downloads.html。打开下载msi软件安装包进入Tortoise SVN安装向导,按照默认安装方式进行安装即可。2代码库Checkout安装完毕后,在资源管理器的文件夹或空白区域右击,弹出的快捷菜单多出了“SVN Checkout.”和“TortoiseSVN”两个菜单项,其中“TortoiseSVN”的二

5、级菜单项“Export.”和“SVN Checkout.”项单项功能相同。选择“SVN Checkout.”,将SVN Server中创建的TestPro代码库Checkout到本地进行工作。输入代码库的URL,如::443/svn/TestPro,选择检出到本地的位置,单击OK,接受验证,输入正确的用户名和密码即可将远程的代码库检出到本地。3更新本地代码库在本地的代码库文件夹上右击,选择“SVN Update”命令,可快速更新本地代码库。4添加本地代码库中文件到代码库本地代码库中有新的文件产生,需要将其添加到代码库中,以便于进行版本的控制。在文件夹或指定的文件上右击,选择“TortoiseS

6、VN”的“Add.”,在弹出的对话框中,显示待添加的文件列表,确认无误后,点击“OK”完成文件的添加操作。5提交本地库到服务器右击本地库文件夹,右击选择“SVN Commit.”,在弹出的对话框中输入本次提交的说明,点击“OK”完成提交。Tortoise SVN的快捷菜单命令如表所示 23.2.3 Android Studio中使用SVN 在AndroidStudio中使用SVN能够提高团队协作性以及代码管理水平。1SVN客户端配置打开Android Studio选择“File”“Settings”“Version Control”“Subversion”,在右侧的“General”中勾选并设

7、置“Use command line client:”为SVN.exe,配置好即可在AndroidStudio中使用SVN。2SVN客户端使用Android Studio的VCS菜单提供了对Subversion的支持,配置好Subversion之后,在VCS菜单下会出现Subversion的一个子菜单,该菜单提供了Subversion的常用操作。23.3 Git和GitHub23.3.1 Git安装Git是一款免费、开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。Git 是Linus Torvalds为了帮助管理Linux内核开发而开发的一个开放源码的版本控制软件。2008年,

8、GitHub网站上线了,它为开源项目免费提供Git存储,无数开源项目开始迁移至GitHub。可在/download/(或者http:/msysgit.github.io/),下载最新版本Git-2.5.1-32-bit.exe,双击击下载的文件,打开Git安装向导,按照默认安装方式进行安装即可。“Configuring the line ending conversions”是指配置文件是按那种格式换行,Windows下换行是rn两个符号表示,Linux下是n一个符号表示,所以在Windows和Linux间传递数据会有这个问题,程序默认选择“checkout windows-style, co

9、mmit unix-stye line endings”,表示程序会做一些自动转换,选“checkout as-is, commit as-is,就是不做任何变化。安装好Git之后,开始菜单的Git目录下会出现Git Bash,Git CMD和Git GUI等菜单项。在Win7环境下安装,选择“Git Bash”,弹出如图界面,证明安装成功。 安装完成后,还需要最后一步设置,在命令行输入:$ git config -global kuaijibird$ git config -global user.email kuaijibird 因为Git是分布式版本控制系统,所以,每个机器都必须自报家门

10、:你的名字和Email地址。还须注意git config命令的-global参数,用了这个参数,表示你这台机器上所有的Git仓库都会使用这个配置,当然也可以对某个仓库指定不同的用户名和Email地址。23.3.2 远程仓库远程仓库是指托管在网络上的项目仓库,根据权限可以对远程仓库进行读写操作。同他人协作开发某个项目时,需要管理这些远程仓库,以便推送或拉取数据,分享各自的工作进展。管理远程仓库的工作,包括添加远程库,移除废弃的远程库,管理各式远程库分支,定义是否跟踪这些分支等。1查看当前的远程库要查看当前配置有哪些远程仓库,可以用“git remote” 命令,它会列出每个远程库的简短名字。在开

11、始菜单中打开“Git Bash”,在其中输入“git remote” 命令。加上参数-v后显示远程库对应的克隆地址。2克隆远程库将远程库克隆到本地,在GitBash窗口中输入git clone url,其中url为远程库的github网址,如克隆Spring的代码库,Spring代码库的github网址为/SpringSource/Spring-framework.git,克隆命令为:git clone /SpringSource/Spring-framework.git3添加远程库要添加一个新的远程仓库,可以指定一个简单的名字,以便将来引用,运行 git remote add shortna

12、me url,如:创建一个TestPro代码库,其url指定为:git:/TestPro/testPro.git,命令如下:git remote add TestPro git:/TestPro/testPro.git4从远程仓库抓取数据从远程仓库抓取数据,可以用git fetch TestPro来抓取TestPro远程库有的,但本地仓库没有的信息,如图所示主干分支(master)已经完全可以在本地访问了,对应的名字TestPro/master,你可以将它合并到自己的某个分支,或者切换到这个分支。5推送数据到远程仓库项目进行到一个阶段,要同别人分享目前的成果,可以将本地仓库中的数据推送到远程仓

13、库。实现这个任务的命令:git push remote-name branch-name。将本地的 master 分支推送到服务器可以运行下面的命令:git push TestPro master。6查看远程仓库信息通过命令 git remote show remote-name 查看某个远程仓库的详细信息,比如要看所克隆的TestPro仓库,可以运行git remote show TestPro,显示信息如图所示7远程仓库删除和重命名用git remote rename命令修改某个远程仓库在本地的简称,比如想把TestPro改成 TestProject,命令为:git remote rena

14、me TestPro TestProject。23.3.3 分支管理分支是版本控制软件基本功能之一。使用分支意味着你可以从开发主线上分离开来,然后在不影响主线的同时继续工作。Git的分支可谓是轻量级的,它的新建操作几乎可以在瞬间完成,并且在不同分支间切换起来也差不多一样快。和许多其他版本控制系统不同,Git 鼓励在工作流程中频繁使用分支与合并。1分支创建与切换当调试某个Bug或者尝试添加或修改程序中的某个模块,而又不能影响主分支的开发时。就可以通过创建分支来满足需求。创建分支相当于是创建一个新的分支指针指向当前所在的提交。创建分支的命令:git branch 分支名称;如git branch

15、dev创建dev分支。切换分支的命令:git checkout 分支名称;如git checkout dev切换到dev分支。创建并切换到分支的命令:git checkout -b 分支名称;如git branch -b dev创建dev分支并切换到dev分支。2分支合并和分支删除将分支合并到master分支上的命令为:git merge 待合并分支名称;如git merge dev把dev分支的工作成果合并到master分支上。分支删除的命令为:git branch -d 待删除分支名称;如git branch -d dev将dev分支删除。23.3.4 使用GitHubGitHub可以托管

16、各种Git版本库,并提供一个web界面,GitHub的可以对项目的分支进行简单快捷的操作性。可以到GitHub官网注册一个账号。GitHub for Windows是一个Metro风格应用程序,集成了自包含版本的Git bash 命令行shell,PowerShell的posh-git扩展。GitHub为Windows 用户提供了一个基本的图形前端去处理大部分常用版本控制任务,可以创建版本库,向本地版本库递交补丁,在本地和远程版本库之间同步。微软也通过CodePlex向开发者提供 git 版本控制系统,而GitHub创造了一个更具有吸引力的Windows版本,Windows版本下载网址:,安装

17、好GitHub for Windows可以方便的使用GitHub。 23.3.5 Android Studio中使用Git1SVN客户端配置打开AndroidStudio选择“File”“Settings”“Version Control”“Git”,在右侧的“Path to Git executable”中设置git.exe,配置好即可在AndroidStudio中使用Git。2SVN客户端使用Android Studio的VCS菜单下的“Checkout from Version Control”“Git”可以实现将代码库从远程仓库中检出;“Import into Version Cont

18、rol”“Create Git Repository.”可以实现创建代码库;“Import into Version Control”“Share Project on GitHub”可以实现将代码分享到GitHub上。 23.4 比较SVN和GitGit和SVN都是版本控制软件,其区别主要有以下几点:1. Git是分布式 这是Git和其它非分布式的版本控制系统最核心的区别。Git并不是目前第一个或唯一的分布式版本控制系统。还有一些系统,例如Bitkeeper, Mercurial等, 也是运行在分布式模式上的。但Git在这方面做的更好,而且有更多强大的功能特征。Git跟SVN一样有自己的集中式版本库或服务器。但Git更倾向于被使用于分布式模式,也就是每个开发人员从中心版本库/服务器上chect out代码后会在自己的机器上克隆一个自己的版本库。2. Git把内容按元数据方式存储,而SVN是按文件所有的资源控制系统都是把文件的元信息隐藏在一个类似.svn,cvs等的文件夹里。如果你把.git目录的体积大小跟.svn比较,会发现它们差距很大。因为.git目录是处于你的机器上的一个克隆版的版本库,它拥有中心版本库上所有的东西,例如标签,分支,版本记录等。3. Git分支和SVN的分支不同分支在SVN中一点不特别,就是版本库中的另外的一个目录。Git的分支却

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论