小米便签AS部署之Git的基本使用
1 项目测试截图 及仓库地址
https://gitee.com/magicfatblink/Notes-master
2 小米便签代码的移植
2.1 IDE 的准备
2.1.1 AS版本选择
由于小米便签是一个很老的项目,距最后一次提交已经有13年的历史了
当时Android主流开发软件还是eclipse,本项目原始代码也是基于eclipse运行的,所以我们导入AS的时候需要进行一次转换。实际运行发现,现如今AS的版本(2023.3.2)移除了对eclipse项目移植的功能(这个地方卡了我一天)。在网上查资料,查看别人移植的教程发现,大部分人使用的都是之前的版本。
所以在官网找到之前的版本(我用的是2022.2.1)
https://developer.android.google.cn/studio/archive (这里一定要把语言切换到英文否则下载出错)
下载发现果然该版本有ADT功能(不知道为什么高版本阉割了)
2.1.2 JAVA版本选择
2022版最高支持Gradle 8.. 的版本,对应该版本的是JAVA 17 所以在java版本这里又踩了一个坑。
至于Gradle是什么,就简单的理解成类似于maven就行了
2.2 代码修改
2.2.1 关于JAVA 17代码的修改
文件app/src/main/java/net/micode/notes/ui/NoteEditActivity.java
会报错
截取代码中报错的一部分
提示我们
Constant expression required
经过查资料得知,在JAVA 17以后 switch..case都不支持非常数表达式,如果想使用相同的方法只能用if..else置换达到相同结果。
这下没办法了只能一个个更改
其实还有别的方法,换一个Gradle更低的版本以及对应的JAVA即可,但是本着IDE能不改动就不改动的原则还是辛苦置换下else即可,毕竟后者不需要废脑子只是废手
3 Git的使用
项目目前都已经构建测试完成,下面尝试使用git进行管理。对于命令行和小乌龟两种方式(cmd和gui的区别),我更喜欢cmd一些,所以接下来所有操作都基于命令行。
3.1 管理员视角下的Git操作
-
①创建针对本作业的项目和软件版本库,在版本库中建立“src”和“doc”两个文件夹,分别存储软件系统的源代码和报告文档。为了遵循AS文件管理系统的管理方式,我在/app内放置了src和doc目录、
-
②建立master、Dev,将当前版本存入master目录下
(3) 实践操作参考:组长组员两个人协同开发:组长负责维护开发分支dev,组员向dev上传提交;当dev测试合适后,组长有唯一权限向master上传作为最终结果。
① 远程仓库有master和dev两个分支
② 组长本地有master和dev分支,分别关联对应的远程分支
③ 组员本地只有一个分支,关联远程dev分支【可以选择clone某一个远程分支到本地】
④ 具体开发流程是:
1 组长和组员分别在各自的本地dev分支开发,有阶段性成果后push到远程dev【若有冲突,解决冲突再合并】
2 当开发完成、结果稳定后,组长将本地的master和dev分支merge,再把master分支push上去
-
③提交原始代码到gitee上
-
④创建一个Dev分支,从master分支分离(全部copy master分支)
-
⑤在本地以及远程查看仓库,发现本地只有master仓库没有Dev
-
⑥所以创建一个本地分支来指向这个Dev
-
⑦切换分支
-
⑧假设我已经修改测试完毕,打算提交Dev分支
-
⑨查看gitee:
-
⑩提示领先master一个版本,创建一个pull request来推送:
-
⑩①测试成功
-
⑩②补充一点,为了模拟完整的开发,需要对master设置保护
目的是为了小组成员不能控制master
成员视角(非管理员视角)
-
①在我接受了管理员邀请后,加入了此git项目:
-
②开始clone代码,注意这里使用选项让我克隆的是Dev分支
-
③测试一下是不是真的克隆了分支
-
④我修改了GtaskASync的一个类,然后现在开始提交分支
-
⑤再去gitee看,已经提交成功
-
⑥提交request
-
⑦这时再让管理员审核并且合并就可以了。
关于git对于分别提交相同分支(不审核的条件下)的处理
-两人都对readme英文版进行修改
会发现第二个人就会报错,错误冲突,只能解决冲突才能进一步修改。
所以正确的是提交前先拉取,本地合并,然后再提交。
3.4 用到的部分git代码
git clone 链接
git add .
git commit -m "提交信息,不能为空"
git push origin master
git branch 分支
git checkout Dev
git clone -b Dev 链接