Android-JavaWeb ——版本控制 git和svn

来源:互联网 发布:淘宝店轮播图片制作 编辑:程序博客网 时间:2024/05/22 20:12

版本控制 git和svn


版本控制是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统。更进一步,版本控制系统可以指定和若干不同的远端代码仓库进行交互。这样我们就可以在同一个项目中,分别和不同工作小组的人相互协作。我们可以根据需要设定不同的协作流程,比方说针对不同的业务模块设置不同的访问权限等。

13.1  Git简介

自诞生于 2005年以来,Git 日趋成熟完善,在高度易用的同时,仍然保留着初期设定的目标。它的速度飞快,极其适合管理大项目,它还有非线性分支管理功能,可以应付各种复杂的项目开发需求。常见的版本控制系统可以分为三大类:本地版本控制、集中式版本控制、分布式版本控制。Git属于分布式版本控制,即每个客户端都是一个完整的版本库。任何一处协同工作的服务器发生故障,都可以通过任何一个本地仓库进行恢复。

Git的特点:

速度快。

设计简单

对非线性开发模式的强力支持(允许上千个并行开发的分支)

完全分布式

有能力高效管理类似 Linux内核一样的超大规模项目

13.2 Git的使用

基本了解Git之后我们先进行安装。本章以window系统为例,安装步骤非常简单,先下载Git,下载地址: http://www.git-scm.com/download/,见下图所示,

下载完成后,双击安装即可。

 

13-1下载Git

Git安装完成之后,我们开始创建版本库。版本库也可以称为仓库,简单来说就是一个文件目录,只不过这个目录中文件会被Git管理,每个文件的增、删、改都会被Git追踪,Git为我们提供了命令工具Git Bash和图形化操作工具Git GUI,

具体步骤如下:

1. 创建一个空目录:mygit,使用git init命令初始化版本库。

  在mygit文件夹上点击右键,弹出菜单后选择Git Bash。在Git Bash命令行窗口中输入:git init命令进行初始化版本库。

 

13-2下载Git

                                                                                                                              

13-3初始化Git

命令执行完成之后,mygit目录中会出现.git目录,此目录主要是Git用来管理跟踪版本库的,不要随意修改。

2. Git最重要的配置信息就是用户名和电子邮件地址。每次Git提交时都会使用这两条信息,用来标识是提交更新的用户。使用命令:

Ø $ git config  --global user.namejredu

Ø $ git config  --global user.email jredu@jredu.com

通过以上两条命令可以为Git配置用户名和Email信息,注意以上的两条命令中有--global”参数,这就意味着此次配置为全局配置,所有的Git项目中都使用上述配置的用户名和电子邮件作为commit的用户标识。

如果某些项目不想使用全局的用户配置信息,我们可以单独为此项目进行配置,具体命令如下:

Ø $ git config user.namejredu001

Ø $ git config user.email jredu001@jredu.com

3. 查看Git配置信息, 使用命令:

Ø git config --list

 

13-4查看Git配置信息

除了使用以上命令查看之外,我们还可以通过打开指定配置文件来查看信息。Git的全局配置信息存储在”.git/config”的文件中,我们通过如下命令可查看:

Ø $ cat ~/.gitconfig

 

13-5查看Git配置文件

4. 配置好Git以后,就可以进行文件的版本管理了,但是现在只有本地库,如果想与他人合作,还需要一个远程的 Git 仓库,所以我们需要一台服务器。

架设一台 Git服务器并不难Git可以使用四种主要的协议来传输数据:本地传输,SSH协议,Git协议和 HTTP协议

如果不想经历自己架设 Git服务器的麻烦,网络上有几个专业的仓库托管服务可供选择。GitHub是目前为止最大的开源 Git托管服务,并且还是少数同时提供公共代码和私有代码托管服务的站点之一这样做有几大优点:托管账户的建立通常比较省时,方便项目的启动,而且不涉及服务器的维护和监控。即使内部创建并运行着自己的服务器,同时为开源项目提供一个公共托管站点还是有好处的。下面介绍如何在github上创建远程仓库。

Ø 建立账户:

首先注册一个免费账户。地址 http://github.com/plans ,并点击 Free acount 里的 Sign Up进入注册页面

 

 

13-6 github注册

Ø 建立SSH公钥,步骤见下图所示:

 


13-7用户设置

 

13-8添加公钥

获得SSH KEY的方法,点击开始菜单,打开Git GUI,点击Help中的Show SSH KEY,见下图:

 

13-9打开GitGUI


13-10获取Key

Key全部复制到图10-8提示的位置,点击完成。

 

5. 打开mygit目录,点击鼠标右键,在菜单中选择Git GUI, 这个图形化工具可以为我们扫描出当前目录中文件的变化,以及保存版本和上传至服务器。首先我们先配置添加远程仓库,见下图所示。

 

 

13-11添加远程仓库

 

13-21打开远程仓库画面


 

13-22获取仓库地址

把仓库名称和地址填入图13-11所示的对应位置,点击add即可。

 

6. 连接上远程仓库后,我们就可以对文件进行版本管理了。在mygit目录中新建一个HelloGit.txt的文件,使用GUI工具扫描目录中的文件变化。


13-23 GUI工具扫描本地仓库

 

7. 在编辑过某些文件之后,Git将这些文件标为已修改。我们逐步把这些修改过的文件放到暂存区域,直到最后一次性提交所有这些暂存起来的文件,如此重复。使用GUI工具将HelloGit.txt文件放入暂存区,见下图所示:

 

13-24 GUI工具改变缓存

8. 把文件放入暂存区后,如果确认无误就可以提交更新,注意这里的Commit只是提交至本地仓库,还未提交至github

 


13-25 GUI工具提交更新

9. 提交到github,点击图13-25中的Push按钮,弹出画面如下图所示:

 

13-25 GUI工具提交更新

10. gitHub中查看上传的文件,可以在图13-22的画面刷新浏览器,如下所示:


13-26github上查看文件

11. 到此,我们已经成功把文件上传至github,如果要实现多人联合开发,首先需要从github上下载文件,下面将介绍如何获取远程仓库的最新代码。打开GitGui工具,新建一个目录,见下图所示:

 

13-27新建目录

12. 新建一个mytest的目录,见下图:

 

13-28新建mytest目录

13. 建完目录以后,我们依然要添加远程仓库地址,注意选择立即获取,见下图所示:

 

13-29添加远程仓库

14. 添加完成后,就可以从github上获取代码了,见下图所示:

 

13-30获取代码

15. 获取代码成功后,打开mytest目录,会发现目录中并没有我们想获取的代码,这是因为获取代码之后,必须要操作merge(合并)选项,这时需要为mytest目录新建一个分支,关闭GUI工具,打开mytest目录,右键鼠标选择Git Bash

要新建并切换到该分支,运行 git checkout 并加上 -b 参数,创建一个名为mytestBranch的分支,见下图所示。


13-31新建并切换分支

16. 新建的远程分支必须向github提交一次,新建文件mytest.txt,提交到服务器,提交的步骤都是相同的,这里不再重复。

17. 重新执行获取代码(13-30),然后进行合并,见下图:

 


13-32执行合并

18. 现在打开mytest目录,可以看见从github中获取的test.txt文件,这就可以实现联合开发了,但是多人对同一个文件进行编辑,又提交至服务器,就会造成服务器端和本地仓库的文件数据有差异,比如master分支编辑test.txt文件,输入a=1,然后提交至githubmytestBranch分支也编辑test.txt文件a=2后提交至服务器。此时因为版本差异会提交失败,提示先从github上获取代码再进行修改,继续按提示获取代码然后执行合并,就会造成下图的结果,也是这里要说的重点:需要解决冲突问题。

 

13-33执行合并出现错误

19. 不管上传还是下载,当Git提示有冲突时,都可以用以下的方式进行判断后再处理。推荐的方式是:修改文件之前先下载最新版本

  

13-33解决冲突

20. github上查看每个分支上传的内容,见下图所示:

 

13-34 github上查找分支

21. AndroidStudio中配置gitgithubAndroidStudio中内置了版本控制的插件,我们可以直接下载github上的工程。配置方法如下图所示:


13-35 Android studio打开设置面板

 

13-36配置github

 

13-37配置git的启动程序

22. 配置完成并测试通过后,就可以克隆远程仓库的代码了,因为Android Studio版本不同,可能版本控制的菜单位置有差异,下图以1.0.1版本为例,供参考使用。

 

13-38克隆代码

23. 使用AndroidStudio上传代码,新建文件AndroidStudio.txt,见下图所示。

 

13-39提交代码

 

13-40提交并上传代码

 

13-41 github上查找文件

24. 使用AndroidStudio比较代码,见下图所示。

 

13-42比较代码

 

13-43比较差异

 

以上就是Git的基本用法,除了使用GUI工具之外,还可以完全使用Git命令来完成上述所有的步骤,想深入了解Git命令或Git内部原理可参考官方文档。http://git.oschina.net/progit/index.html

 

 

 

13.3 SVN的使用

SVN的全称是Subversion是一个开源的版本控制系统,属于集中式版本控制。SVN将文件存放在中心版本库里,可以理解成一个文件服务器,它可以记录每一次文件和目录修改的情况。使用方法如下:

1. 下载SVN服务器端安装文件, 目前较为简单的方案是VisualSVN Server。该SVN服务器是免费的,支持Windows操作系统,安装非常简单。下载地址:

http://subversion.apache.org/packages.html,见下图所示。


13-44软件下载

 

2. 下载TortoiseSVN客户端,下载地址:http://tortoisesvn.net/downloads.html

注意操作系统的位数。

 

13-45客户端下载

 

3. 下载完成后,先双击安装VisualSVN Server,一直单击下一步即可。安装完成后的运行画面如下:

 

13-46打开VisualSVN Server

4. 新建服务器的目录,就是存放代码的远程仓库,见下图所示。

 

13-47新建仓库目录

 

13-48新建仓库目录名称

  

13-49创建仓库成功

5. 上传项目至服务器,可以使用TortoiseSVN客户端,双击安装此程序,一直下一步即可,安装步骤这里不做介绍。

6. 打开项目所在的本地目录,右键所选中的项目,选择TortoiseSVN->Import


13-50上传文件至服务器

 

13-51输入仓库地址

7. 打开VisualSVN,查看代码文件,见下图所示。

 

13-52查看服务器文件

8. SVN服务器上创建用户,见下图:

 

13-53创建用户

9. SVN服务器导入代码,打开AndroidStudio,新建一个工程MySvnTest,具体步骤见下图所示。

 

13-53导入代码

 

13-54输入地址

  

13-55用户登录

 

 

 

 

 

10. 导入代码后,可以对文件进行编辑,然后提交至服务器。


 

13-55文件操作

至此,SVN的配置和项目导入就完成了,文件的提交,更新以及比较合并等

操作的方法同连接github是一样的,这里不再重复,注意修改文件前一定要先从服务器上更新最新版的代码。


1 0
原创粉丝点击