# Git Tag 使用指南 ## **1. 什麼是 Git Tag?** Git Tag 用於標記特定的 commit,常用於版本發布與里程碑標記。 ### **Git Tag 的用途** - 標記重要的版本,例如 v1.0.0、v2.1.0 - 追蹤發布版本,方便回滾 - 配合 CI/CD,自動化部署 ### **Git Tag vs. Git Branch 的差異** | 特性 | Git Tag | Git Branch | |------|--------|------------| | 可變性 | 固定,標記特定 commit | 可變,可持續開發 | | 用途 | 標記版本,作為里程碑 | 管理開發進度 | | 刪除影響 | 不影響歷史 | 影響版本控制 | > 可變性 > 指的是標籤一旦被創建,它就會永久指向該 commit,不會自動變更。這與 branch(分支)不同,因為 branch 會隨著新 commit 的提交而移動 HEAD 指標,但 tag 則始終固定指向一個特定的 commit。 ## **2. Git Tag 的種類** ### **輕量標籤(Lightweight Tag)** - 只是一個指向 commit 的指標,不包含額外資訊。 - 建立方式: ```bash git tag v1.0.0 ``` ### **註釋標籤(Annotated Tag)** - 包含標籤訊息、作者、日期等。 - 建立方式: ```bash git tag -a v1.0.0 -m "正式發布 v1.0.0" ``` ### **簽署標籤(Signed Tag)** - 透過 GPG 簽名來驗證標籤。 - 建立方式: ```bash git tag -s v1.0.0 -m "正式發布 v1.0.0" ``` - Signed tag 跟 Annotated tag 有一點點不一樣,Signed tag 是用 GPG 金鑰來簽名,通常是用在更正式的情境,如企業正式版本的發布。 ### **動態標籤(Floating Tag, 軟標籤)** - 通常是用來標記最近開發的 commit。他會隨著新的 commit 而移動。 - 通常不推送到遠端。只是用於 local 開發時的標記。 - 他沒有什麼特別的建立方法,就跟一般的標籤建立一樣,只是沒有被 push 到遠端。 ## **3. 如何建立 Git Tag** ```bash git tag -a <tagname> -m "標籤訊息" ``` ## **4. 查詢與管理 Git Tag** - 列出所有標籤: ```bash git tag ``` - 搜尋特定標籤: ```bash git tag -l "v1.*" ``` - 查看標籤資訊: ```bash git show <tagname> ``` ## **5. 推送與刪除 Git Tag** ### **推送標籤** ```bash # 推送特定標籤 git push origin <tagname> # 推送所有標籤 git push origin --tags ``` ### **刪除標籤** ```bash # 刪除本地標籤 git tag -d <tagname> # 刪除遠端標籤 git push --delete origin <tagname> ``` ## **7. Git Tag 進階應用** - 在各種環境中,可能會因為頻繁的修改,而一直不斷的部署版本,為了不要亂掉,就可以使用 tag 來標記每次部署的版本 - 這樣就可以方便的回滾到特定版本,或者查看特定版本的變更 - 我們可以用下面這樣的方法,在分支上進行紀錄 ### **管理 SIT、UAT、PROD 版本** - **SIT 版本**: ```bash git tag -a sit-1.0.0 -m "SIT 測試版本" git push origin sit-1.0.0 ``` - **UAT 版本**: ```bash git tag -a uat-1.0.0 -m "UAT 測試版本" git push origin uat-1.0.0 ``` - **正式版本(PROD)**: ```bash git tag -a prod-1.0.0 -m "正式上線版本" git push origin prod-1.0.0 ``` ## **9. Git Tag 的常見問題與解決方案** ### **為什麼 `git push --tags` 沒有推送標籤?** - 需要先確保標籤已正確建立。 - 可以手動推送: ```bash git push origin <tagname> ``` ### **如何修復錯誤的標籤?** - 刪除並重新標記: ```bash git tag -d <tagname> git push --delete origin <tagname> git tag -a <tagname> -m "正確標籤" git push origin <tagname> ``` ### **遠端刪除標籤後本地仍然顯示,如何同步?** - 執行以下指令同步本地標籤: ```bash git fetch --prune --tags ``` ###### `Git` `Tag` `版本控制` `教學` `指南` `開發` `程式設計` `版本標記` `版本發布` `里程碑` `標籤`
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up