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.mfbz.cn/a/464936.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Qt/C++监控推流设备推流/延迟极低/实时性极高/rtsp/rtmp推流/hls/flv/webrtc拉流/调整分辨率降低带宽

一、前言 算下来这个推流的项目作品写了有四年多了,最初第一个版本只有文件点播的功能,用的纯QTcpSocket通信实现,属于比较简单的功能。由于文件点播只支持文件形式的推流,不支持网络流或者本地设备采集,所以迫切需要…

【GPT-SOVITS-05】SOVITS 模块-残差量化解析

说明:该系列文章从本人知乎账号迁入,主要原因是知乎图片附件过于模糊。 知乎专栏地址: 语音生成专栏 系列文章地址: 【GPT-SOVITS-01】源码梳理 【GPT-SOVITS-02】GPT模块解析 【GPT-SOVITS-03】SOVITS 模块-生成模型解析 【G…

ChatGPT提示词方法的原理

关于提示词,我之前的一些文章可以参考: 【AIGC】AI作图最全提示词prompt集合(收藏级)https://giszz.blog.csdn.net/article/details/134815245?ydrefereraHR0cHM6Ly9tcC5jc2RuLm5ldC9tcF9ibG9nL21hbmFnZS9hcnRpY2xlP3NwbT0xMDExL…

如何在Mac中删除照片?这里有详细步骤

前言 本文介绍如何从Mac中删除照片,以释放硬盘空间或更好地组织文件和文件夹。 如何使用废纸篓删除Mac上的图片 在Mac上删除图片的最简单方法之一是使用废纸篓功能。学习只需几秒钟。下面是如何删除单个图片以及如何在Mac上删除多个图片,以及一些关键和有用的提示,以使该…

Matlab|考虑可再生能源消纳的电热综合能源系统日前经济调度模型

目录 1 主要内容 模型示意图 目标函数 程序亮点 2 部分程序 3 程序结果 4 下载链接 1 主要内容 本程序参考文献《考虑可再生能源消纳的建筑综合能源系统日前经济调度模型》模型,建立了电热综合能源系统优化调度模型,包括燃气轮机、燃气锅炉、余热…

195基于matlab的凸轮机构GUI界面

基于matlab的凸轮机构GUI界面 , 凸轮设计与仿真 绘制不同的凸轮轮廓曲线 ,凸轮机构运动参数包括推程运动角,回程运动角,远休止角,近休止角。运动方式,运动规律。运动仿真过程可视化。内容齐全详尽。用GUI打…

Docker 哲学 - 容器操作 -cp

1、拷贝 容器绑定的 volume的 数据,到指定目录 2、匿名挂载 volume 只定义一个数据咋在容器内的path,docker自动生成一个 sha256 的key作为 volume 名字。这个 sha256 跟 commitID 一致都是唯一的所以 ,docker利用这个机制,可以…

【C++ 08】vector 顺序表的常见基本操作

文章目录 前言🌈 Ⅰ vector 类对象的定义1. 定义格式2. vector 对象的构造 🌈 Ⅱ vector 类对象的容量🌈 Ⅲ vector 类对象的访问🌈 Ⅳ vector 类对象的修改🌈 Ⅴ vector 定义二维数组 前言 vector 介绍 vector 是一…

julia语言中的决策树

决策树(Decision Tree)是一种基本的分类与回归方法,它呈现出一种树形结构,可以直观地展示决策的过程和结果。在决策树中,每个内部节点表示一个属性上的判断条件,每个分支代表一个可能的属性值,每…

使用IDEA进行Scala编程相关安装步骤

一、相关安装包(jdk最好用1.8版本,其他不做要求) IDEA安装包 jdk-8u101-windows-x64.exe scala-2.12.19 二、安装顺序 在安装IDEA之前,首先要安装好java和scala环境,以便后续配置 三、jdk和scala安装要求 1.jdk安…

【论文阅读】DiffSpeaker: Speech-Driven 3D Facial Animation with Diffusion Transformer

DiffSpeaker: 使用扩散Transformer进行语音驱动的3D面部动画 code:GitHub - theEricMa/DiffSpeaker: This is the official repository for DiffSpeaker: Speech-Driven 3D Facial Animation with Diffusion Transformer paper:https://arxiv.org/pdf/…

【Kubernetes】k8s删除master节点后重新加入集群

目录 前言一、思路二、实战1.安装etcdctl指令2.重置旧节点的k8s3.旧节点的的 etcd 从 etcd 集群删除4.在 master03 上,创建存放证书目录5.把其他控制节点的证书拷贝到 master01 上6.把 master03 加入到集群7.验证 master03 是否加入到 k8s 集群,检查业务…

Docker 安装 LogStash

关于LogStash Logstash,作为Elastic Stack家族中的核心成员之一,是一个功能强大的开源数据收集引擎。它专长于从各种来源动态地获取、解析、转换和丰富数据,并将这些结构化或非结构化的数据高效地传输到诸如Elasticsearch等存储系统中进行集…

【LabVIEW FPGA入门】浮点数类型支持

如今,使用浮点运算来设计嵌入式系统的需求变得越来越普遍。随着 FPGA 因其固有的大规模并行性而在浮点性能方面继续超越微处理器,这种情况正在加剧。线性代数和数字信号处理 (DSP) 等高级算法可以受益于浮点数据类型的高动态范围精度。LabVIEW FPGA 通过…

【全开源】JAVA语聊大厅+陪玩系统语音聊天APP系统源码

我们技术使用后台服务 springbootmybatisplusmysql用户端 uniapp(vue语法)管理后台 vueelementUi 一、功能介绍 动态列表、发布动态、精准分类 创建语聊房间、房间玩法、违规公示、聊天显示 赠送礼物、上麦功能、房间管理、礼物中心、我的接单 我的技…

大话设计模式——8.原型模式(Prototype Pattern)

1.介绍 用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。属于创建型模式。 UML图: 1)浅拷贝: 指创建一个新的对象,然后将原始对象的字段值复制到新对象中。如果字段是基本类型,直接复制…

将FastSAM中的TextPrompt迁移到MobileSAM中

本博文简单介绍了SAM、FastSAM与MobileSAM,主要关注于TextPrompt功能的使用。从性能上看MobileSAM是最实用的,但其没有提供TextPrompt功能,故而参考FastSAM中的实现,在MobileSAM中嵌入TextPrompt类。并将TextPrompt能力嵌入到MobileSAM官方项目提供的gradio.py部署代码中,…

阿里云下载安装centos

这里以centos7.x版本下载安装为例 : 网址 : 阿里巴巴开源镜像站-OPSX镜像站-阿里云开发者社区 点击centos : 再点击下载地址 : 找到 7/ 并点击 : 找到isos/并点击 : 点击x86_64 : 找到4.4G的文件点击下载 ; 点击创建新的虚拟机 , 然后选择典型 , 然后点击下一…

HarmonyOS(鸿蒙)ArcUI组件

方舟开发框架(简称ArkUI)为HarmonyOS应用的UI开发提供了完整的基础设施,包括简洁的UI语法、丰富的UI功能(组件、布局、动画以及交互事件),以及实时界面预览工具等,可以支持开发者进行可视化界面…

Centos yum报错‘Connection timed out after 30002 milliseconds‘) 正在尝试其它镜像。解决办法

修改源后更新报错 我有两个Centos 一个7 一个8,疏忽在7上面配置了8的源后报错,通过下面的报错发现提示的是Centos7的源找不到,才意识到是不是配置错了源。 报错信息: http://mirrors.aliyun.com/centos/7/AppStream/x86_64/os/r…