1. 前言
以前项目版本管理工具一直使用的都是SVN,现在换成Git,并且项目托管平台用的是GitLab。尽管经常使用GitHub,但是却很少用到分支,由于都是自己在写,也不使用开发版与发布版、打Tag那些,所以这里也详细讲下Git的用。这篇文章还是会按我以前的写作风格,写的浅显易懂,并且全程自己操作一遍,目的是为了初学者也可以看懂。
2. 简介
- Git:Git是一个开源的分布式版本控制系统,能有效、高速的解决从很小到非常大的项目版本管理。简单说,它就是一个管理项目版本的工具。
- GitLab:GitLab 是一个使用于仓库管理系统的开源项目,用Git作为代码管理工具,并在此基础上搭建起来的web服务。简单说,GitLab的性质是和GitHub一样的,都是使用来存储项目的仓库。
3. 准备Git
3.1 安装Git
下载地址:http://git-scm.com/download/
安装步骤:双击安装,按默认选项一路下去就可。
安装完成后,在开始菜单里找到“Git”-->“Git Bash”,出现如下图,就说明Git安装成功!
![](https://yiweifen.com/UploadFiles/haotu/20180524/skriojgytrj3070.png)
3.2 配置信息
在上图命令行中输入你的使用户名与邮箱
<
code
>$ git config --global user.name
"Your Name"
$ git config --global user.email
"email@example.com"
</
code
>
|
命令中的 --global 参数表示你这台机器上所有的Git仓库都会用这个配置。
3.3 Android Studio中配置Git
在Android Studio中点击Settings-->Version Control --> Git,而后在Path To Git executable上输入你刚刚安装Git的位置,最后点击Test按钮出现Git executed successfully说明配置成功,如下图:![](https://yiweifen.com/UploadFiles/haotu/20180524/mtuwkinspdg3071.png)
4. GitLab用
4.1 注册账号
这里说下注册账号的时候需要注意的事项。
假如注册账号的时候提醒如下错误
<
code
>there was an error with the reCAPTCHA,please solve the reCAPTCHA again</
code
>
|
![](https://yiweifen.com/UploadFiles/haotu/20180524/ynjkrs34ymn3072.png)
4.2 GitLab账户配置SSH Keys
4.2.1 首先需要检查你电脑能否已经有 SSH Keys
在Git Bash 用户端,输入如下代码:
<
code
>$ cd ~/.ssh$ ls</
code
>
|
![](https://yiweifen.com/UploadFiles/haotu/20180524/eej0sbvre2y3073.png)
4.2.2 创立一个 SSH Keys
在Git Bash 用户端,输入如下代码:
<
code
>$ ssh-keygen -t rsa -C
"your_email"
</
code
>
|
而后根据提醒进行相应操作,如下图所示:
第一个Enter表示Keys存储的位置,默认按回车键就可。第二个和第三个Enter表示Push文件的时候要输入的密码,不需要密码就默认按回车键就可,而后出现如图底部信息就说明创立成功了!
![](https://yiweifen.com/UploadFiles/haotu/20180524/bu3pn2ysgdd3074.png)
4.2.3 GitLab配置SSH Keys
进入上图所示存储 id_rsa.pub 的文件夹拷贝该文件中的内容,而后登录你的GitLab账号,点击网页右上角的头像-->Settings,点击左边菜单栏的 SSH Keys 进入页面增加 SSH key。如下操作:![](https://yiweifen.com/UploadFiles/haotu/20180524/pefpxitnrap3075.png)
![](https://yiweifen.com/UploadFiles/haotu/20180524/lka51zdw0pd3076.png)
4.3 创立项目
在GitLab网站点击导航条上的 “+” 就可进入创立项目的页面,而后根据提醒填写相应信息,如下图:![](https://yiweifen.com/UploadFiles/haotu/20180524/yxnrt3q5t3a3077.png)
![](https://yiweifen.com/UploadFiles/haotu/20180524/og5rtnetpmq3078.png)
- Project path:项目路径
- Project name:项目名称
- Project description (optional):项目形容(可选项)
- Visibility Level:可见登记,Private表示私有的,只有你自己或者者组内的成员可以访问,Internal表示所有登录的使用户,Public表示公开的,所有人都能访问。
![](https://yiweifen.com/UploadFiles/haotu/20180524/oux5rmdb2ap3079.png)
5. Android Studio中用Git
5.1 将项目上传到GitLab
本地已创立好的项目为WildmaGit
5.1.1 配置忽略文件
Android Studio创立项目后会自动生成.gitignore文件,这个文件能使用来忽略那些不使用加入到仓库的文件。项目根目录下与module目录下都会生成该文件,如下:![](https://yiweifen.com/UploadFiles/haotu/20180524/3hnjcncnbuf3080.png)
一般情况下我们只要要将项目根目录下的/.idea/workspace.xml与/.idea/libraries改成.idea就可,其余没有特殊要求就使用默认的。如下:
![](https://yiweifen.com/UploadFiles/haotu/20180524/jikmhrlscky3081.png)
修改后:
![](https://yiweifen.com/UploadFiles/haotu/20180524/nbfascy2pmd3082.png)
5.1.2 初始化本地Git仓库
点击Android Studio顶部菜单栏上的VCS-->Import into Version Control-->Create Git Repository,如图:![](https://yiweifen.com/UploadFiles/haotu/20180524/uzbwdutwqwe3083.png)
![](https://yiweifen.com/UploadFiles/haotu/20180524/a0ovee3fgqy3084.png)
![](https://yiweifen.com/UploadFiles/haotu/20180524/20yg1gz01j43085.png)
5.1.3 将本地Git仓库已与远程仓库进行关联
打开项目文件夹,在该文件夹中打开Git Bash。输入如下命令后就代表本地Git仓库已与远程仓库进行关联了。
<
code
>git remote add origin git@gitlab.com:wildma/WildmaGit.git</
code
>
|
![](https://yiweifen.com/UploadFiles/haotu/20180524/0vey0yco1r33086.png)
![](https://yiweifen.com/UploadFiles/haotu/20180524/bsppab451rb3087.png)
其中 git@gitlab.com:wildma/WildmaGit.git 为我们项目的远程地址,能到我们前面创立项目中复制,如下:
![](https://yiweifen.com/UploadFiles/haotu/20180524/biy2laiw4hy3088.png)
5.1.4 增加文件
选中项目的根目录,点击Android Studio顶部菜单栏上的VCS-->Git-->Add...,如下图:![](https://yiweifen.com/UploadFiles/haotu/20180524/kdhxmygsnej3089.png)
![](https://yiweifen.com/UploadFiles/haotu/20180524/tyvwp1ib1sz3090.png)
5.1.5 提交文件
每次提交前需要先升级项目,起因是假如是多人合作的项目,需要先将远程仓库中他人提交的最新代码升级到本地仓库。如图:![](https://yiweifen.com/UploadFiles/haotu/20180524/thmc5o1ojdq3091.png)
![](https://yiweifen.com/UploadFiles/haotu/20180524/cntrgdq3iib3092.png)
![](https://yiweifen.com/UploadFiles/haotu/20180524/h2sbx1gxjxx3093.png)
![](https://yiweifen.com/UploadFiles/haotu/20180524/oeyhgdk3tek3094.png)
![](https://yiweifen.com/UploadFiles/haotu/20180524/xzeafuvrlsp3095.png)
5.1.6 将提交的文件推送到远程仓库
选中项目的根目录,点击Android Studio顶部菜单栏上的VCS-->Git-->Push...,如下图:![](https://yiweifen.com/UploadFiles/haotu/20180524/3vcyw2qx4hh3096.png)
![](https://yiweifen.com/UploadFiles/haotu/20180524/acrgvl2yafb3097.png)
![](https://yiweifen.com/UploadFiles/haotu/20180524/wdnyamxa5si3098.png)
5.2 从GitLab上clone项目
首先到GitLab上复制项目的地址,如图:![](https://yiweifen.com/UploadFiles/haotu/20180524/e3fodernppr3099.png)
![](https://yiweifen.com/UploadFiles/haotu/20180524/zm2ozuf2xqm3100.png)
最后填写相应的信息就可,如下图:
- Git Repository URL:填写刚刚复制的项目地址
- Parent Directory:项目路径
- Directory Name:项目文件夹名称
![](https://yiweifen.com/UploadFiles/haotu/20180524/gwfk3oqedob3101.png)
点击clone后,项目就clone下来了!
5.3 分支管理
5.3.1 分支策略
在实际开发中,我们会使用到很多分支。这里说下各分支的作使用。
- master分支:最稳固的分支,保存需要发布的版本,不在该分支上做任何开发。
- dev分支:开发分支,保存最新的代码,平常开发就在该分支上。当某个版本开发完成后就合并到master分支,而后在master分支进行版本发布。
- bug分支:使用来修复bug的分支,一般是线上版出现bug的时候,从master分支创立一个新的bug分支进行bug修复,修复完成合并到master分支和dev分支(保证master分支与dev分支同步),而后删除该bug分支。
实际开发中我主要使用到这三个分支,当然每个人都不同,有些人还会细分到功可以分支,预发分支。其中master分支与dev分支都需要推送到远程,为了其余成员可以共同开发,bug分支则放在本地就可,你自己修复完bug删掉就可。
5.3.2 分支操作
创立分支
点击Android Studio顶部菜单栏上的VCS-->Git-->Branches...,如图:
![](https://yiweifen.com/UploadFiles/haotu/20180524/4up2mkyvceg3103.png)
![](https://yiweifen.com/UploadFiles/haotu/20180524/iiigbe2ybcc3104.png)
![](https://yiweifen.com/UploadFiles/haotu/20180524/rcxjoytj0lt3105.png)
推送分支到远程
这时候我们在dev分支上修改内容,而后按照前面说的提交文件(步骤5.1.5),将提交的文件推送到远程仓库(步骤5.1.6)就可。如图:
![](https://yiweifen.com/UploadFiles/haotu/20180524/3sjigsewnxw3107.png)
![](https://yiweifen.com/UploadFiles/haotu/20180524/ppjkovbnkug3108.png)
切换分支
dev分支上版本V1.0开发完了,需要将代码合并到master上进行发布。由于当前在dev分支,所以需要先切换到master分支,点击Android Studio顶部菜单栏上的VCS-->Git-->Branches...,打开Git Branches窗口,而后选择本地分支栏下的master->origin/master,而后点击Checkout。如图:
合并分支
第三步已经将分支切换到master了,现在进行分支合并。点击Android Studio顶部菜单栏上的VCS-->Git-->Branches...,打开Git Branches窗口,而后选择远程分支栏下的origin/dev,而后点击Merge。如图:
![](https://yiweifen.com/UploadFiles/haotu/20180524/cevqojeeuhq3111.png)
这个时候发现GitLab上master分支与dev分支是保持一致的了。而后将最新的master分支打包发布就可!
删除分支
点击Android Studio顶部菜单栏上的VCS-->Git-->Branches...,打开Git Branches窗口,选中本地dev分支,选择Delete就可。如图:
删除本地分支:
删除远程分支:
![](https://yiweifen.com/UploadFiles/haotu/20180524/1tbk3mhgzxp3117.png)
5.4 标签(Tag)管理
标签一般是使用于标记某个发布的版本, 例如你发布了版本v1.0,这个时候会打一个v1.0的Tag,主要是方便以后查看和管理某个版本的代码。
创立标签
点击Android Studio顶部菜单栏上的VCS-->Git-->Tag...,如图:
![](https://yiweifen.com/UploadFiles/haotu/20180524/kirpibbjaxz3123.png)
推送标签到远程
点击Android Studio顶部菜单栏上的VCS-->Git-->Push...,如图:
而后弹出Push框,选中Push Tags,点击Push就可推送到远程。如图:
![](https://yiweifen.com/UploadFiles/haotu/20180524/2zos5xki3ey3129.png)
最后到GitLab即可以看到刚刚创立的Tag了,如图:
![](https://yiweifen.com/UploadFiles/haotu/20180524/sdpwp5qrp2z3130.png)
checkout某个标签的代码
点击Android Studio顶部菜单栏上的VCS-->Git-->Branches...,如图:
![](https://yiweifen.com/UploadFiles/haotu/20180524/cq1wmfrdwv13132.png)
![](https://yiweifen.com/UploadFiles/haotu/20180524/5zyks0o3djm3133.png)
- 删除标签
在Android Studio中没找到删除Tag的操作,所以这里使用Git命令。(有发现的小伙伴能告诉我)
查看本地标签:
<
code
>git tag</
code
>
|
删除本地标签:
<
code
>git tag -d tagName</
code
>
|
删除远程标签:
<
code
>git push origin :refs/tags/tagName</
code
>
|
![](https://yiweifen.com/UploadFiles/haotu/20180524/3cnsiffrmsw3134.png)