項目每發(fā)布一個版本,要養(yǎng)成打 Tag 和 Release 的好習(xí)慣。
比如上線 v1.0.0 之后,隨手在 github 倉庫上就 main 分支打個 v1.0.0 tag, v1.0.1、 v1.1.0、 v2.0.0 等等,這樣每次升級都打個標(biāo)簽,可以方便后續(xù)追查。
1. 版本命名規(guī)范
采用業(yè)界標(biāo)準(zhǔn)的 Semantic Versioning,格式為:
v{major}.{minor}.{patch}
| 字段 | 含義 | 觸發(fā)時機 |
|---|---|---|
| major | 主版本號 | 破壞性更新,不向下兼容 |
| minor | 次版本號 | 新功能,向下兼容 |
| patch | 補丁版本號 | Bug 修復(fù) |
典型迭代示例:
v1.0.0 首次上線
v1.0.1 修復(fù)線上 crash
v1.1.0 新增功能模塊
v2.0.0 大版本改版,接口不兼容
2. iOS 項目版本號對應(yīng)關(guān)系
App Store 有兩個版本概念,建議與 Git tag 保持對應(yīng):
| Xcode 字段 | 說明 | 示例 |
|---|---|---|
CFBundleShortVersionString(Marketing Version) |
對應(yīng) tag 版本號 | 1.0.0 |
CFBundleVersion(Build Number) |
CI 構(gòu)建號,不放入 tag | 100 |
3. 命令行發(fā)布流程(供參考)
# 切換到 main 分支并拉取最新代碼
git checkout main
git pull origin main
# 創(chuàng)建 annotated tag(推薦,包含作者、時間、message 信息)
git tag -a v1.0.0 -m "Release v1.0.0 - 首次上線"
# 推送 tag 到遠(yuǎn)端
git push origin v1.0.0
注意:tag 打在 merge 到 main 之后的 commit 上,而非 develop 分支。
4. GitHub 網(wǎng)頁端發(fā)布流程
4.1 合并 develop 到 main
- 在 GitHub 發(fā)起 Pull Request:
develop→main - Code Review 通過后,點擊 Merge pull request
- 確認(rèn) main 分支已更新至最新 commit
4.2 創(chuàng)建 Release
- 進(jìn)入倉庫主頁,點擊右側(cè) Releases 區(qū)域的 Create a new release
- 填寫以下信息:
| 字段 | 填寫內(nèi)容 |
|---|---|
| Choose a tag | 輸入 v1.0.0,選擇 "Create new tag on publish" |
| Target | 確認(rèn)選擇 main
|
| Release title |
v1.0.0 或 v1.0.0 - 首次發(fā)布
|
| Description | 點擊 "Generate release notes" 自動生成,或手動填寫 |
- 點擊 Publish release
4.3 選項說明
- Set as a pre-release:標(biāo)記為非正式版本(適用于 beta、rc 等測試版),正式上線不勾選
- Set as the latest release:標(biāo)記為最新正式版本,正式上線保持勾選
5. Release 頁面說明
發(fā)布成功后,Release 頁面包含以下內(nèi)容:
- What's Changed:自動匯總本次 PR 的變更內(nèi)容
- New Contributors:首次貢獻(xiàn)者列表
- Full Changelog:完整的 commit 鏈接
-
Assets:GitHub 自動打包的源碼壓縮包(
zip/tar.gz),由平臺自動生成,iOS 私有項目可忽略
6. 完整分支策略示意
develop ──●──●──●──●──────────────────────
↘ Pull Request #3
main ──────────────── ● ─────────────
e9288b2
↑
tag: v1.0.0
2026.03.26 09:09
滬 · 趙巷
?? 聲明:本文由 AI 輔助完成