您的位置:首页 > 移动开发 > Android开发

AndroidStudio工具使用、Svn和Git集成使用简介(三)

2018-01-29 17:16 603 查看

1:AS中使用svn管理项目

把本地的项目导入到svn服务器

这里说的是把一个本地的项目通过as中的svn提交到服务器



图1 新创建一个项目

图2:在Setting–Version Control–Ingored Files中添加忽略文件,即那些文件是不需要上传到SVN服务的,目前需要忽略的有.gradle、.idea、所有的build文件夹、所有的.iml文件

图3:在AS中选择VCS-Import into Version Control–Share Project on Subversion,注意这里的share不是真正把项目文件直接分享到服务器,而是把当前项目和svn服务器关联起来,这个时候如果你去查看本地文件发现文件多了.SVN文件。Share过程中弹出的提示框都点ok。Shar完成后如图3所示,我们忽略的文件和需要上传的文件颜色是不一样的

图4:Share完成后,执行commit操作就是真正把项目文件提交到svn服务器。此时点击项目右键会发现多了一个SubVersion选项,VCS中也可以commit,

1:这里说下commit在AS中不知道是bug还是其他原因,整个项目执行commit他会显示提交进度框,但是进度还未走完就自动关闭了。项目也没提交成功。但是单个文件的commit是ok的

2:针对commit 整个项目失败的情况,(我猜是不是文件大了)我们可以进入当前项目所在的本地路径,然后针对这个项目在本地执行svn

3:Commit提交成功后如图4所示,未被忽略的文件提交后变成白色 注意:把项目提交成功后,我们更改了某个文件他会变色,

4: 但是AS不像Ecplise会在项目文件根下给您显示一个*表示有文件需要提交

AS中更改了文件在项目名称下没任何提示的,但是注意AS面板下方多了一个

Version Control的窗口,他会列举出所有修改过的文件

在上述project中再创建一个moudle再提交到SVN

在project创建一个新的moudle期间一切确认提示框都点击OK就是

创建新moudle成功后,添加需要忽略的文件,然后commint即可成功上传到svn

这里就不需要先share再提交。

总结:第一次提交项目到svn服务器需要线share

–再commit,至于忽略文件看情况也可以不添 加忽略文件把所有文件上传上去也没问题。 Commit的时候如果是整个项目或者module提交失败的话,就去本地路径找到项目再commit

把SVN服务器的项目导出到本地

1:第一种导出方式

在本地文件夹直接check svn项目,然后导入AS即可(推荐)

如果服务器以前有忽略文件,那么导入之后这些忽略文件会自动生存但颜色是红色

红色是表示这个文件未加入VCS(即没加入svn服务器),可以不管

2:第二种导出方式

第二种就是直接在AS中点击File-New-Project from Version Control–SubVersion

这种方式会配置一些东西时间比较长,容易失败

2:AS中使用Git管理项目

git、github的介绍区别

1:Git一种版本控制工具,Gihub在git基础上发展出来的一个开源仓库。

2:在AS中默认的Github是github.com,如果想把项目分享到github上可以直接在VCS–shar github,注意如果想把项目导入到指定的git服务器则只能用git版本控制工具来操作。

3:因为国内也有个开源的github社区http://git.oschina.net/,曾经以为使用AS中的github可以直接把项目分享到这个社区上,后来发现是不行的。必须是github.com

我们可以把国内的开源github社区当作是一个服务器,复制某个具体项目的url,然后使用git工具来管理项目

4:在AS中使用git来管理项目,那么就必须会git工具。详情见本文的GIT使用文档

Git与SVN比较介绍

1:git分布式和svn集中式

Svn集中概念:所有人从服务器上copy代码,然后每个人修改后都提交到服务器,我们想知道别人修改了什么代码或者需要获得最新代码就需要从服务器更新

Git分布式:分布式则不同,他可以有中心也可以没有中心,比如公司举例子,公司有git服务器,我们可以从这个服务器copy完整的代码到本地,A同学修改了xx文件,B同学也修改了xx文件,按svn的操作我们都得提交到中央服务器才行,但是git则不然,A可以直接pushB同学的本地仓,而不经过服务器。(好久没玩了不知道对不对)

2:git与svn的比较

网上总会有很多比较,但是谁比谁好,这个不一定见得要看运用的地方

Svn大家使用的比较熟悉了,大部分git能做的svn都能做,只是看那个更方便而已

Git最简单的使用步骤

1:下载安装

下载很简单,根据系统64/32下载对应的git即可,安装一路next。

打开git建议使用git-bash.exe 这种方式支持更多的linux命令,当然cmd也可以!

2:Git命令–一个完整的基本流程操作

注意:因为不同版本的命令窗口会导致运行命令不同程度上有区别,本文以git-bash.exe讲解

git config –list 查看git的配置文件

配置全局的用户名和邮箱以后提交代码就用这个做标识

git config –global user.name chenxin

git config –global user.email 13628488191@163.com

配置成功后可以使用git config –list查看

创建一个本地仓

切换到e盘:cd /e、创建GitTest文件夹:mkdir GitTest、切换至GitTest:cd GitTest

创建一个内容为11111111111的testgit.txt文件:echo 1111111111111111111>testgit.txt

git init:初始化这个目录为git的仓库。这个时候查看这个文件夹多了个.git文件

git status 查看当前仓文件状态。比如是否有未add、commit的文件



git add 把工作区的文件提交到暂存区



执行git add 后文件处于暂存区

git commit 把暂存区的文件添加到版本库

git commit -m “first 1111111111” testgit.txt

-m 后面是跟的提交日志。

commit后使用git status查看系统提示

On branch master

nothing to commit, working directory clean

表示在master(主分支)上没有需要提交的内容,并且工作区也是干净的

提交到远程仓库(服务器或其他仓库)

这里使用开源中国的github为远程仓https://git.oschina.net/cx136/GitTestProject.git

git remote add origin https://git.oschina.net/cx136/GitTestProject.git

这句命令的意思是增加远程仓的源地址(remote 远程,origin 源),(我们本地代码提交到那里去)

git push -u origin master 把当前master分支下的代码提交到刚才关联的远程仓中去

提交的时候会让你输入远程仓的用户名和密码

远程仓库有了我们刚才提交的文件:



从远程仓库获取文件

我们直接在远程仓库创建一个testgit2文件,然后本地获取

git pull https://git.oschina.net/cx136/GitTestProject.git master:master

git pull <远程主机名> <远程分支名>:<本地分支名>

这样我们成功的从远程获取一个文件

以上就是整个git的基本工作流程

-3:git的工作原理理解

通过上面的基本操作,我大概知道了git的使用方式,但是add commit

或者是以后各分支切换日志查看,版本回退,工作区,暂存区,版本库他们是如何工作?。这就必须去了解下git的工作原理。当我们清楚原理后我们使用git会更加清晰明了

1:在我们执行git init后就会在默认目录下生存一个.git的隐藏文件各个文件目录的作用如下图

2:几个工作区

工作区:如我们刚才的GitTest目录就是工作区,但是要把.git文件除外

暂存区:在.git目录中有个index就是暂存区域

版本库:工作区中的.git不属于工作区,他就是版本库

在工作区对文件进行操作后执行git add 进入暂存区,

暂存区的文件执行git commit命令后进入版本库



从图上来说在GitTest出去.git的那部分就是工作区,.git就是版本库里面包含了暂存区

工作区对文件进行修改后–add到暂存区–执行commit–保存到HEAD文件中的对应分支上

git diff:是查看工作区与暂存区的差别的。

git diff –cached:是查看index file与commit的差别的。

git diff HEAD:是查看working tree和commit的差别的。

以上是自己的使用总结,不足之处欢迎指正
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Android SVN AndroidStudio