这是我参与「第四届青训营 」笔记创作活动的第1天。
本篇文章记录了在此次青训营大作业的团队开发中,对git使用的规范和流程,核心是使用rebase使分支看起来简洁。关于标题为什么专门包含了Android团队,是因为之后会使用Android Studio中的Update Project工具,在发生冲突时会有图形化界面提示冲突,更方便解决代码冲突。
git开发流程
第一步,拉去项目工程至本地。在首次被邀请进入项目的github仓库后,您可以先在本地文件里右键打开Git Bash,在git命令行中输入git clone [github仓库地址]指令,来将远程仓库拉至本地,例如我们团队的成员可以输入git clone https://github.com/sulv9/DouyinQxy.git。
第二步,打开并配置项目工程。打开Android Studio,并选择打开在第一步中您拉取下来的项目文件夹,如果您的项目需要添加一些额外的秘密文件,请在使用AS打开项目前事先将秘密文件移动到项目对应的目录下。
例如本次青训营项目需要队长前往抖音开放平台申请应用密匙,我会使用groovy语法新建一个名为secret.gradle的文件,在其中添加变量来保存应用密匙,并在项目的gradle配置文件中读取secret.gradle文件中的应用密匙,在Application初始化抖音API时传入该密匙。同时我会在.gitignore文件中添加该secret.gradle文件的路径,以忽略该秘密文件的上传。
除此之外我们还需要将应用签名文件下发给团队中的成员,并在.gitignore中也忽略该文件的上传。
那么我们团队的成员就可以在飞书群里下载这两个秘密文件后,将它们移动到DouyinQxy/build_logic/secret目录下,然后再使用AndroidStudio打开项目,并等待项目编译加载完毕。
第三步,切换开发分支。打开Android Studio下方的Terminal控制台,在其中输入git checkout -b [branchName]来创建并切换到新的分支。
请注意这里的[branchName]是指你自己的分支名,分支名采用多层路径命名格式,按[userName/taskName]格式命名(不需要加[]),例如一个叫sulv的人打算开发个人中心模块,则分支名可以取sulv/personal,也即输入的指令为git checkout -b sulv/personal。
第四步,开始您的代码编写。在写完一部分内容的代码后,请分别在Terminal中输入git add .和git commit -m "[commitMessage]"指令将修改的代码添加到git暂存区,其中[commitMessage]格式为[Type] commit-message,Type指此次提交类型,具体请见Git Commit Type,commit-message即为此次代码修改的主要内容,最好在50字以内。例如这次我在个人模块新写了头像的UI,可以输入git commit -m"[feat]个人中心模块新增头像功能"。
第五步,提交代码至远程仓库。提交代码前我们需要先更新远程仓库的main分支(部分仓库可能是develop分支,按自己仓库情况来定)代码至本地,以解决代码合并冲突。
拉取代码的方式有命令行和图形化两种方式,这里我们选择AndroidStudio自带的Update Project工具,以方便解决代码冲突。
合并代码有merge和rebase两种方式,这里我们选择rebase。
更新代码的方式其实也有两种,第一种我们可以直接在自己的开发分支(如上述第三步中切换的sulv/personal分支)选择Update project,然后在AS右下角的提示框中选择choose upstream branch,然后在对话框中输入main,即可拉取的远程分支为main。
第二种方式就是先在本地切换到main分支,使用Update Project拉取远程仓库main分支的最新代码,然后在Terminal中输入git checkout [branchName]切换到你原本的开发分支上,打开AndroidStudio左下角的Git,在其中选择Local下的main分支,并右键选择Rebase Current Onto Selected,将当前分支rebase到main分支,如下图所示:
更新完代码后您就可以可以输入push指令将代码提交到远程仓库了。如果远程仓库已存在相同分支,则直接输入git push,如果没有则输入git push --set-upstream origin [branchName],其中[branchName]就是您编写代码的分支名。
第六步,提交PR。打开远程仓库地址,您会看到类似下面这样的提示Compare & pull request(如果没有可以切换到自己的分支界面再查看):
点击Create pull request:
然后根据您仓库的配置提交PR,例如本仓库设置要求团队中两名成员Review过您提交的代码后才能继续合并分支,当然仓库拥有者可以越过此项规定直接合并代码。
在合并代码时请先选择Rebase and merge,如下图所示,点击Rebase and merge,然后点击Confirm rebase and merge:
合并完成后请点击右侧的Delete branch按钮删除分支,保证远程仓库分支的整洁:
Git Commit Type
feat: Add a new feature to the codebase.fix: Fix a bug.docs: Documentation changes.style: Code style change(Don't affect the execution of the code).refactor: Refactor code without changing public API.perf: Update code performances.test: Add test to an existing feature.
注:可根据特殊场景自定CommitType,但尽量保持简洁、易懂。
关于AndroidStudio中使用git的其他操作您也可以看以下推荐文章: