【鸿蒙开发学习日志第6天】:Git 规范与流程控制
本文介绍了鸿蒙项目Git仓库规范管理和ArkTS逻辑控制的核心要点。在Git管理方面,重点讲解了如何通过.gitignore排除依赖包和构建缓存,并提供完整的清理步骤(包括移除已提交文件、重新提交源码等)。在ArkTS编程部分,详细解析了if-else分支语句的用法,通过成绩评级等案例展示条件判断逻辑,并介绍了更简洁的三元运算符语法及其在UI开发中的应用。最后总结了Git规范先行、逻辑清晰和类型安
日期:2026-03-21
主题:构建纯净的 Git 仓库 & 掌握 ArkTS 逻辑控制流
🚀 第一部分:鸿蒙项目 Git 配置“大扫除”
在初始化鸿蒙项目时,最容易犯的错误就是未配置 .gitignore 就直接提交,导致 oh_modules(依赖包)和 build(构建缓存)等巨大文件被上传。这不仅让仓库体积膨胀,还会导致推送失败。
以下是完整的修复指南与最佳实践。
1. 🔍 问题诊断
| 症状 | 原因分析 |
|---|---|
| 🐢 推送极慢或超时 | oh_modules 包含成千上万个小文件 |
| 💾 仓库体积异常大 | 编译产物 (build/, .preview/) 被版本控制追踪 |
🚫 .gitignore 无效 |
关键点:.gitignore 只能忽略未追踪的文件,已提交的文件需手动移除 |
2. 🛠️ 完整修复步骤
第一步:完善 .gitignore
在项目根目录创建或编辑 .gitignore 文件,确保包含以下核心规则:
# --- HarmonyOS 核心排除项 ---
# 依赖模块 (绝对不要提交)
/oh_modules/
**/oh_modules/
# 构建缓存与临时文件
/build/
/.preview/
/hvigor/
**.local**
# IDE 配置 (避免不同开发者配置冲突)
/.idea/
*.iml
/local.properties
# 系统垃圾文件
.DS_Store
Thumbs.db
*.log
第二步:从历史提交中“清洗”文件
即使添加了 .gitignore,之前误提交的文件依然存在于 Git 索引中。需要执行以下命令将其从版本控制中移除(但保留在本地磁盘):
# 1. 移除 oh_modules (递归移除且保留本地文件)
git rm -r --cached oh_modules
# 2. 移除构建缓存
git rm -r --cached build
git rm -r --cached .preview
# 3. 提交这次“清洗”操作
git commit -m "refactor: 移除误提交的依赖包和构建缓存,规范.gitignore"
第三步:重新整理并提交源码
确保只提交必要的源代码文件:
# 添加核心源码和配置
git add entry/src AppScope build-profile.json5 hvigorfile.ts oh-package.json5 .gitignore
# 提交
git commit -m "feat: 提交纯净的项目源代码"
第四步:强制推送到远程 (可选)
如果远程仓库已经包含了那些大文件,可能需要强制推送以覆盖历史(注意:如果是多人协作项目,请使用 git filter-repo 或联系管理员,不要随意强制推送):
git push -u origin master --force
✅ 验收清单
执行以下命令确认修复成功:
-
git status:不再显示build/或oh_modules/下的文件。 -
git ls-files | grep oh_modules:无输出(表示已不再被追踪)。 - 远程仓库大小显著减小。
💻 第二部分:ArkTS 流程控制 —— if 分支语句
逻辑判断是程序的基石。在鸿蒙开发(ArkTS)中,我们使用 if...else if...else 结构来处理多条件场景。
1. 基础语法结构
if (条件表达式) {
// 条件为 true 时执行
} else if (另一个条件) {
// 上一个条件为 false,且此条件为 true 时执行
} else {
// 所有条件都不满足时执行
}
2. 实战案例:成绩等级判定
通过嵌套的 else if,我们可以将连续的数值范围映射到不同的等级。
代码示例:
// 定义变量,注意 ArkTS 的类型注解
let score: number = 88;
if (score >= 80) {
console.log('评级:A (优秀)');
} else if (score >= 70) {
console.log('评级:B (良好)');
} else if (score >= 60) {
console.log('评级:C (及格)');
} else if (score >= 50) {
console.log('评级:D (需努力)');
} else {
console.log('评级:E (不及格)');
}
🖥️ 运行结果:
评级:A (优秀)
💡 逻辑解析:程序从上到下依次判断。因为
88 >= 80成立,直接执行第一个代码块,后续的else if将被跳过。这就是互斥性。
3. 进阶案例:年龄限制
let age: number = 10;
if (age >= 18) {
console.log('✅ 成年了,可以进入网吧。');
} else {
console.log('❌ 未成年,禁止进入网吧。');
}
注:实际开发中,此类逻辑常用于权限控制或界面元素的显隐(如:未成年人模式)。
⚡ 第三部分:简洁之道 —— 条件表达式 (三元运算符)
当逻辑仅仅是“二选一”赋值时,使用 if...else 会显得冗长。ArkTS 支持条件表达式(俗称三元运算符),能让代码更简洁。
1. 语法公式
let 结果 = 条件 ? 条件成立时的值 : 条件不成立时的值;
2. 实战案例:求最大值
传统写法 (if-else):
let num1: number = 88;
let num2: number = 90;
let maxVal: number;
if (num1 > num2) {
maxVal = num1;
} else {
maxVal = num2;
}
✨ 优化写法 (条件表达式):
let num1: number = 88;
let num2: number = 90;
// 一行代码完成判断与赋值
let result: number = num1 > num2 ? num1 : num2;
console.log(`两者中的较大值是:${result}`);
🖥️ 运行结果:
两者中的较大值是:90
3. 在 UI 开发中的应用 (重要)
在鸿蒙声明式 UI (@Component) 中,条件表达式非常常用,用于动态改变样式或文本:
@Entry
@Component
struct Index {
@State isVip: boolean = true;
build() {
Column() {
// 根据 isVip 状态动态显示文字
Text(this.isVip ? '尊贵的 VIP 用户' : '普通用户')
.fontSize(20)
// 动态改变字体颜色
.fontColor(this.isVip ? '#FFD700' : '#000000')
.padding(20)
}
}
}
📝 学习总结与心得
- 规范先行:Git 的配置必须在项目初期完成。一旦误提交了大文件,后期的清理成本很高。记住口诀:先写
.gitignore,再git add。 - 逻辑清晰:
if-else适合处理复杂的多分支逻辑,阅读性好;而三元运算符? :适合简单的二选一赋值,能显著提升代码的紧凑度。 - 类型安全:在 ArkTS 中,始终记得给变量加上类型注解(如
: number),这有助于编译器在编码阶段发现错误。
📚 下一步计划
- 学习
switch语句,处理更多离散值的判断。 - 尝试将条件表达式应用到实际的鸿蒙 UI 组件属性绑定中。
- 练习使用 Git 进行分支管理 (
git branch,git checkout)。
更多推荐


所有评论(0)