Android学习使用GitLab(保姆级)

                                                         实习生入职第一课
                                       学习使用GitLab,熟悉Git版本控制工具

下面是我的学习笔记,希望能帮助到需要的人!

目录

一、注册你的GitLab账号 

二、安装Git

三、在Android studio中配置Git

四、GitLab账户配置SSH Keys

五、GitLab账号创建项目

六、将Android项目上传到GitLab

七、从GitLab上clone项目

八、 分支管理

九、标签(Tag)管理


一、注册你的GitLab账号 

 网址:https://gitlab.com/users/sign_in

二、安装Git

1.安装Git

下载地址:Git - Downloads
安装步骤:双击安装,按默认选项一路下去即可。
安装完成后,在开始菜单里找到“Git”-->“Git Bash”,

输入

git --version

出现如下图,就说明Git安装成功!

2.配置git信息

在上图命令行中输入你的用户名与邮箱 ,其中Your Name和email@example.com的内容你自己定义。

  1. $ git config --global user.name "Your Name"

  2. $ git config --global user.email "email@example.com"

命令中的 --global 参数表示你这台机器上所有的Git仓库都会使用这个配置。

三、在Android studio中配置Git

在Android Studio中点击Settings-->Version Control --> Git,然后在Path To Git executable上输入你刚刚安装Git的位置,最后点击Test按钮出现Git version is x.x.x说明配置成功,如下图:

四、GitLab账户配置SSH Keys

1 .首先需要检查你电脑是否已经有 SSH Keys

在Git Bash客户端 ,输入如下代码:

  1. $ cd ~/.ssh

  2. $ ls

如下说明已经存在,存在就可以忽略下面创建SSH Keys的步骤,否则接着下面步骤

2.创建一个 SSH Keys

在Git Bash 客户端输入如下代码:

$ ssh-keygen -t rsa -C "your_email"

然后根据提示进行相应操作,如下图所示:
第一个Enter表示Keys存储的位置,默认按回车键即可。第二个和第三个Enter表示Push文件的时候要输入的密码,不需要密码就默认按回车键即可,然后出现如图底部信息就说明创建成功了!

3.GitLab配置SSH Keys

进入上图所示的C/Users/2585936316/.ssh存储的 id_rsa.pub 的文件夹拷贝该文件中的内容。

然后登录你的GitLab账号,点击搜索,搜索SSH,选择SSH密钥进入页面

将 id_rsa.pub 的文件夹拷贝的内容填入密钥,添加 SSH key。如下操作:

点击添加密钥

五、GitLab账号创建项目

点击账号左边侧边框的项目->创建空白项目

点击新建项目后

六、将Android项目上传到GitLab

本地已创建好的项目

(1)配置忽略文件

Android Studio创建项目后会自动生成.gitignore文件,这个文件可以用来忽略那些不用加入到仓库的文件。项目根目录下与module目录下都会生成该文件,如下:

一般情况下我们只需要将项目根目录下的/.idea/xxx改成.idea即可,其他没有特殊要求就用默认的。如下:

修改前:

修改后:

(2)初始化本地Git仓库

点击Android Studio顶部菜单栏上的VCS-->Create Git Repository,如图:

然后选择需要初始化的项目根目录,如图:

初始化之后发现文件名由原来的白色变成了红色,这表示文件已经被git跟踪了,但是并没有添加到仓库中。如图:

(3) 将本地Git仓库已与远程仓库进行关联

在创建的项目那里可知道SSH,点击克隆

打开项目文件夹,对该文件夹MyTest右键打开Git Bash。输入如下命令后就代表本地Git仓库已与远程仓库进行关联了。

git remote add origin3 git@gitlab.com:Bookonpillow/mytest.git

具体步骤见下图:

(4) 添加文件

在Android studio中右键选中项目的根目录,Git-->Add,如下图:

添加文件后发现文件名由原来的红色变成了绿色,说明已经将文件添加进仓库了。如下图:

(5 )提交文件

每次提交前需要先更新项目,原因是如果是多人合作的项目,需要先将远程仓库中他人提交的最新代码更新到本地仓库。如图:

然后选中Merge,点击OK,如果本地代码与远程代码有冲突就会弹出冲突提示,根据需求Merge即可,如图:

Update后就可以提交文件了,选中项目的根目录,点击Android Studio顶部菜单栏上的Git-->Commit Directory...,如图:

然后会弹出如下提交框,这里可以选择你要提交的文件和填写提交信息,如图:

提交文件后发现文件名由原来的绿色又变成了最开始的白色,说明已经将文件提交上仓库了。如图:

(6) 将提交的文件推送到远程仓库

点击Android Studio顶部菜单栏上的Git-->Push...,如下图:

然后会弹出如下推送框

点击Push后,就可以在GitLab上看到刚刚推送的内容了。如下图:

七、从GitLab上clone项目

首先到GitLab上复制组长的项目的SSH,如图:

然后点击Android Studio顶部菜单栏上的VCS-->Checkout from Version Control,如图:

最后填写相应的信息即可,如下图:

  • URL:填写刚刚复制的项目地址
  • Directory:存放项目的文件路径

点击clone后,项目就clone下来了!

出现问题:没有gradle

我的做法:

  • 知道该项目原本的gradle版本
  • 点击File->Project Structure->Project ,设置 gradle版本 
  • 做一次Gradle同步,点击File -> Sync Project with Gradle Files

  • 出现问题::Run configuration app is not supported in the curent project. Cannot obtain the package.,我重启,然后去app添加Gradle-aware Make

 可查看是否建立连接

八、 分支管理

1.分支策略

在实际开发中,我们会用到很多分支。这里说下各分支的作用。

  • master分支:最稳定的分支,保存需要发布的版本,不在该分支上做任何开发。
  • dev分支:开发分支,保存最新的代码,平时开发就在该分支上。当某个版本开发完成后就合并到master分支,然后在master分支进行版本发布。
  • bug分支:用来修复bug的分支,一般是线上版出现bug的时候,从master分支创建一个新的bug分支进行bug修复,修复完成合并到master分支和dev分支(保证master分支与dev分支同步),然后删除该bug分支。

实际开发中我主要用到这三个分支,当然每个人都不同,有些人还会细分到功能分支,预发分支。其中master分支与dev分支都需要推送到远程,为了其他成员能共同开发,bug分支则放在本地即可,你自己修复完bug删掉即可。

2. 分支操作
(1)创建分支

点击Android Studio顶部菜单栏上的Git-->Branches...,如图:

然后选择New Branch,输入分支的名字,例如“dev”,如图:

点击OK,分支dev就创建成功了,并且切换到该分支。重复上面的步骤可以看到当前分支显示的是dev,如图:

切换分支之前记得commit,这样才会保存你的修改!!!

(2)推送分支到远程

         这时候我们在dev分支上修改内容,然后按照前面说的提交文件,将提交的文件推送到远程仓库即可。如图:

点击push,然后就可以到Gitlab上看到我们刚刚推送的dev分支了,如图:

(3)切换分支

dev分支上版本V1.0开发完了,需要将代码合并到master上进行发布。因为当前在dev分支,所以需要先切换到master分支,点击Android Studio顶部菜单栏上的Git-->Branches...,打开Git Branches窗口,然后选择本地分支栏下的master->origin/master,然后点击Checkout。如图:

(4)合并分支

第(3)步切换分支已经将分支切换到master了,现在进行分支合并。点击Android Studio顶部菜单栏上的Git-->Branches...,打开Git Branches窗口,然后选择远程分支栏下的origin/dev,然后点击Merge’origin/dev‘into’master‘。如图:

这个时候到GitLab上却发现master分支上并没有合并到dev分支修改的内容,那是因为刚刚只是将远程dev分支的内容合并到本地master分支,本地master分支还没有push到远程,push一下就可以了,如图:

这个时候发现GitLab上master分支与dev分支是保持一致的了。然后将最新的master分支打包发布即可!

(5)删除分支
  • 删除本地分支:

       点击Android Studio顶部菜单栏上的Git-->Branches...,打开Git Branches窗口,选中本地dev分支,选择Delete即可。如图:

  • 删除远程分支:

      点击Android Studio顶部菜单栏上的Git-->Branches...,打开Git Branches窗口,选中远程dev分支,选择Delete即可。如图:

九、标签(Tag)管理

标签一般是用于标记某个发布的版本, 例如你发布了版本v1.0,这个时候会打一个v1.0的Tag,主要是方便以后查看和管理某个版本的代码。

1.创建标签

点击Android Studio顶部菜单栏上的VCS-->Git-->Tag...,如图:

然后填写Tag名称与Tag信息,点击Create Tag即可创建本地标签。其中Commit可填写以前某次提交记录的id,表示在该次提交上打Tag。如果不填表示Tag打在最新提交的commit上。如图:

2.推送标签到远程 

点击Android Studio顶部菜单栏上的Git-->Push...,如图:

然后弹出Push框,选中Push Tags,点击Push即可推送到远程。如图:

最后到GitLab就可以看到刚刚创建的Tag了,如图:

3.checkout某个标签的代码

点击Android Studio顶部菜单栏上的Git-->Branches...,如图:

然后选择Checkout Tag or Revision...,最后在弹出的Checkout框中填入Tag的名称即可。如图:

4.删除标签

在Android Studio中没找到删除Tag的操作,所以这里用Git命令。

查看本地标签:

git tag

删除本地标签:

git tag -d tagName

删除远程标签:

git push origin :refs/tags/tagName

以上命令需要在Android Studio自带的命令行中输入,如图:

参考:详细讲解Android Studio中使用Git——结合GitLab_androidstudio gitlab-CSDN博客

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/751995.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

深度学习-基于机器学习的垃圾邮件过滤系统

概要 当今社会发展迅速,网络邮件也愈加普及。但是随之产生的垃圾邮件问题,也是的我们的邮件用户不堪其扰。对企业的工作以及个人用户的生活也造成了很大的影响。针对一些由于垃圾邮件导致的网络吞吐量异常和邮件系统无法正常使用的情况。建立一个机器学习…

html5黑色大气的个人博客全屏滚动个人主页源码HTML+JS+CSS

html5黑色大气的个人博客全屏滚动个人主页源码HTMLJSCSS

基于背景差法的运动目标检测(车辆检测),Matlab实现

博主简介: 专注、专一于Matlab图像处理学习、交流,matlab图像代码代做/项目合作可以联系(QQ:3249726188) 个人主页:Matlab_ImagePro-CSDN博客 原则:代码均由本人编写完成,非中介,提供…

【计算机视觉】二、图像形成——实验:2D变换编辑器2.0(Pygame)

文章目录 一、向量和矩阵的基本运算二、几何基元和变换1、几何基元(Geometric Primitives)2、几何变换(Geometric Transformations)2D变换编辑器0. 项目结构1. Package: guibutton.pywindow.py1. __init__(self, width, height, title)2. add_buttons(self)3. clear(self)4. dr…

Docker 安装 Skywalking以及UI界面

关于Skywalking 在现代分布式系统架构中,应用性能监控(Application Performance Monitoring, APM)扮演着至关重要的角色。本文将聚焦于一款备受瞩目的开源APM工具——Apache Skywalking,通过对其功能特性和工作原理的详细介绍&am…

【C++ leetcode 】双指针问题

1. 183. 移动零 题目 给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。 请注意 ,必须在不复制数组的情况下原地对数组进行操作。 题目链接 . - 力扣(LeetCode) 画图 和 文字 分…

基于深度学习LSTM+NLP情感分析电影数据爬虫可视化分析推荐系统(深度学习LSTM+机器学习双推荐算法+scrapy爬虫+NLP情感分析+数据分析可视化)

文章目录 基于深度学习LSTMNLP情感分析电影数据爬虫可视化分析推荐系统(深度学习LSTM机器学习双推荐算法scrapy爬虫NLP情感分析数据分析可视化)项目概述深度学习长短时记忆网络(Long Short-Term Memory,LSTM)机器学习协…

golang常用库之-golang常用库之-ladon包 | 基于策略的访问控制

文章目录 golang常用库之-ladon包 | 基于策略的访问控制概念使用策略 条件 Conditions自定义conditionLadon Condition使用示例 持久化访问控制(Warden) 结合 Gin 开发一个简易 ACL 接口参考 golang常用库之-ladon包 | 基于策略的访问控制 https://github.com/ory/ladon Lado…

NPM 仓库的超集 JSR 来了!

引言 今天在 Deno 博客中看到了一篇文章,介绍了一个叫 JSR 的包管理注册中心,简单尝试了一下觉得还不错,本文将结合原文章和个人体验对 JSR 进行一个详细的介绍。 在现如今的前端开发中,包管理注册中心 (如 npmjs.com) 扮演着至…

Javaweb学习记录(一)Maven

Maven是一款Java项目管理工具,下面将介绍Maven的实际作用和相关的操作 Maven项目依赖的添加 在Maven项目中添加依赖,通过dependencies标签添加所有依赖,所有依赖都添加在里面,而单个依赖就使用dependency标签添加进项目&#xf…

Github 2024-03-17 php开源项目日报 Top9

根据Github Trendings的统计,今日(2024-03-17统计)共有9个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量PHP项目9Blade项目2Laravel:表达力和优雅的 Web 应用程序框架 创建周期:4631 天开发语言:PHP, BladeStar数量:75969 个Fork数量:24281 次关…

电脑充电器能充手机吗?如何给手机充电?

电脑充电器可以给手机充电吗? 电脑充电器可以给手机充电,但前提是电脑充电器的功率输出与手机的功率匹配且接口匹配。 假设电脑充电器的输出功率为5V/2A,手机也支持5V/2A的输入功率。 只要接口匹配,就可以使用电脑充电器给手机充…

记录-gitlab-安装在k8s中的一些注意点

一、已有cert-manager的时候如何配置? 1、首先需要创建一个ClusterIssuer apiVersion: cert-manager.io/v1 kind: ClusterIssuer metadata:name: letsencrypt-staging spec:acme:# You must replace this email address with your own.# Lets Encrypt will use thi…

微信开发者工具如何使用?使用注意事项

(1)单位如何进行换算? 1 px 750/屏幕宽度 rpx 1 rpx 屏幕宽度/750 px (2)如何新建文件? 1> 点开app.json 2> 在“pages/index/index”后面接“,pages/自定义文件夹名/自定义文件名”…

万界星空科技商业开源MES,技术支持+项目合作

商业开源的一套超有价值的JAVA制造执行MES系统源码 亲测 带本地部署搭建教程 教你如何在本地运行运行起来。 开发环境:jdk11tomcatmysql8springbootmaven 可以免费使用,需要源码价格便宜,私信我获取。 一、系统概述: MES制造执…

Spring炼气之路(炼气二层)

一、bean的配置 1.1 bean的基础配置 id&#xff1a; bean的id&#xff0c;使用容器可以通过id值获取对应的bean&#xff0c;在一个容器中id值唯一 class&#xff1a; bean的类型&#xff0c;即配置的bean的全路径类名 <bean id"bookDao" class "com.zhang…

软件测试 自动化测试selenium 基础篇

文章目录 1. 什么是自动化测试&#xff1f;1.1 自动化分类 2. 什么是 Selenium &#xff1f;3. 为什么使用 Selenium &#xff1f;4. Selenium 工作原理5. Selenium 环境搭建 1. 什么是自动化测试&#xff1f; 将人工要做的测试工作进行转换&#xff0c;让代码去执行测试工作 …

macOS Ventura 13.6.5 (22G621) Boot ISO 原版可引导镜像下载

macOS Ventura 13.6.5 (22G621) Boot ISO 原版可引导镜像下载 3 月 8 日凌晨&#xff0c;macOS Sonoma 14.4 发布&#xff0c;同时带来了 macOS Ventru 13.6.5 和 macOS Monterey 12.7.4 安全更新。 macOS Ventura 13.6 及更新版本&#xff0c;如无特殊说明皆为安全更新&…

【开源鸿蒙】编译OpenHarmony轻量系统QEMU RISC-V版

文章目录 一、背景介绍二、准备OpenHarmony源代码三、准备hb命令3.1 安装hb命令3.2 检查hb命令 四、编译RISC-V架构的OpenHarmony轻量系统4.1 设置hb构建目标4.2 启动hb构建过程 五、问题解决5.1 hb set 报错问题解决 六、参考链接 开源鸿蒙坚果派&#xff0c;学习鸿蒙一起来&a…

Vue.js+SpringBoot开发农家乐订餐系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 用户2.2 管理员 三、系统展示四、核心代码4.1 查询菜品类型4.2 查询菜品4.3 加购菜品4.4 新增菜品收藏4.5 新增菜品留言 五、免责说明 一、摘要 1.1 项目介绍 基于JAVAVueSpringBootMySQL的农家乐订餐系统&#xff0c…