{"id":1074,"date":"2025-05-22T19:14:58","date_gmt":"2025-05-22T11:14:58","guid":{"rendered":"https:\/\/beijian99.top\/?p=1074"},"modified":"2025-05-22T19:15:38","modified_gmt":"2025-05-22T11:15:38","slug":"git-tag","status":"publish","type":"post","link":"https:\/\/beijian99.top\/?p=1074","title":{"rendered":"Git Tag"},"content":{"rendered":"\n<h1 class=\"wp-block-heading\">Git Tag \u8be6\u89e3\uff1a\u7248\u672c\u7ba1\u7406\u7684\u9ec4\u91d1\u6807\u8bb0<\/h1>\n\n\n\n<h2 class=\"wp-block-heading\">\u4e00\u3001Git Tag \u662f\u4ec0\u4e48\uff1f<\/h2>\n\n\n\n<p>Git Tag \u662f Git \u63d0\u4f9b\u7684\u7248\u672c\u6807\u8bb0\u5de5\u5177\uff0c\u200b<strong>\u200b\u901a\u8fc7\u7ed9\u7279\u5b9a\u63d0\u4ea4\uff08commit\uff09\u6253\u6807\u7b7e\u200b<\/strong>\u200b\uff0c\u5e2e\u52a9\u5f00\u53d1\u8005\u5feb\u901f\u5b9a\u4f4d\u91cd\u8981\u7248\u672c\u6216\u91cc\u7a0b\u7891\u3002\u5b83\u7c7b\u4f3c\u4e8e\u7ed9\u4ee3\u7801\u5e93\u7684&#8221;\u5386\u53f2\u5750\u6807&#8221;\uff0c\u5e38\u7528\u4e8e\u53d1\u5e03\u7248\u672c\u7ba1\u7406\u3001\u529f\u80fd\u51bb\u7ed3\u70b9\u6807\u8bb0\u7b49\u573a\u666f\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u6838\u5fc3\u7279\u70b9<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u200b<strong>\u200b\u9759\u6001\u4e0d\u53ef\u53d8\u200b<\/strong>\u200b\uff1a\u6807\u7b7e\u4e00\u65e6\u521b\u5efa\u5373\u56fa\u5b9a\u6307\u5411\u67d0\u4e2a\u63d0\u4ea4\uff0c\u4e0d\u4f1a\u968f\u65b0\u63d0\u4ea4\u79fb\u52a8<\/li>\n\n\n\n<li>\u200b<strong>\u200b\u4e24\u79cd\u7c7b\u578b\u200b<\/strong>\u200b\uff1a\n<ul class=\"wp-block-list\">\n<li>\u200b<strong>\u200b\u8f7b\u91cf\u6807\u7b7e\u200b<\/strong>\u200b\uff08Lightweight\uff09\uff1a\u4ec5\u5b58\u50a8\u63d0\u4ea4\u54c8\u5e0c\u503c\uff08\u7c7b\u4f3c <code>v1.0<\/code>\uff09<\/li>\n\n\n\n<li>\u200b<strong>\u200b\u9644\u6ce8\u6807\u7b7e\u200b<\/strong>\u200b\uff08Annotated\uff09\uff1a\u5305\u542b\u4f5c\u8005\u3001\u65e5\u671f\u3001\u63cf\u8ff0\u7b49\u5143\u6570\u636e\uff08\u63a8\u8350\u4f7f\u7528\uff09<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\u4e8c\u3001\u5e38\u7528\u64cd\u4f5c\u6307\u5357<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">1. \u521b\u5efa\u6807\u7b7e<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\">\u8f7b\u91cf\u6807\u7b7e<\/h4>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\ngit tag v1.0.0          # \u4e3a\u5f53\u524d\u63d0\u4ea4\u6253\u6807\u7b7e\ngit tag v0.9.0 abc123   # \u4e3a\u6307\u5b9a\u63d0\u4ea4\uff08abc123\uff09\u6253\u6807\u7b7e\n<\/pre><\/div>\n\n\n<h4 class=\"wp-block-heading\">\u9644\u6ce8\u6807\u7b7e\uff08\u63a8\u8350\uff09<\/h4>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\ngit tag -a v1.0.0 -m &quot;Release version 1.0.0&quot;\n# -a: \u521b\u5efa\u9644\u6ce8\u6807\u7b7e\n# -m: \u6dfb\u52a0\u63cf\u8ff0\u4fe1\u606f\n<\/pre><\/div>\n\n\n<h4 class=\"wp-block-heading\">\u7b7e\u540d\u6807\u7b7e\uff08\u5b89\u5168\u573a\u666f\uff09<\/h4>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\ngit tag -s v1.0.0 -m &quot;Signed release&quot;\n# \u9700\u63d0\u524d\u914d\u7f6e GPG \u5bc6\u94a5\n<\/pre><\/div>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">2. \u67e5\u770b\u6807\u7b7e<\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>\u547d\u4ee4<\/th><th>\u8bf4\u660e<\/th><\/tr><\/thead><tbody><tr><td><code>git tag<\/code><\/td><td>\u5217\u51fa\u6240\u6709\u672c\u5730\u6807\u7b7e\uff08\u6309\u5b57\u6bcd\u6392\u5e8f\uff09<\/td><\/tr><tr><td><code>git tag -l \"v1.*\"<\/code><\/td><td>\u8fc7\u6ee4\u6807\u7b7e\uff08\u5982\u5339\u914d v1.0+\uff09<\/td><\/tr><tr><td><code>git show v1.0.0<\/code><\/td><td>\u67e5\u770b\u6807\u7b7e\u8be6\u7ec6\u4fe1\u606f\uff08\u542b\u63d0\u4ea4\u4fe1\u606f\u3001\u63cf\u8ff0\u7b49\uff09<\/td><\/tr><tr><td><code>git ls-remote --tags origin<\/code><\/td><td>\u67e5\u770b\u8fdc\u7a0b\u4ed3\u5e93\u6807\u7b7e<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">3. \u5220\u9664\u6807\u7b7e<\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>\u64cd\u4f5c<\/th><th>\u547d\u4ee4<\/th><\/tr><\/thead><tbody><tr><td>\u5220\u9664\u672c\u5730\u6807\u7b7e<\/td><td><code>git tag -d v1.0.0<\/code><\/td><\/tr><tr><td>\u5220\u9664\u8fdc\u7a0b\u6807\u7b7e<\/td><td><code>git push origin --delete v1.0.0<\/code><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">4. \u63a8\u9001\u6807\u7b7e<\/h3>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\ngit push origin v1.0.0          # \u63a8\u9001\u5355\u4e2a\u6807\u7b7e\ngit push origin --tags          # \u63a8\u9001\u6240\u6709\u672c\u5730\u6807\u7b7e\n<\/pre><\/div>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">5. \u9ad8\u7ea7\u7528\u6cd5<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\">\u57fa\u4e8e\u6807\u7b7e\u521b\u5efa\u5206\u652f<\/h4>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\ngit checkout -b fix-bug-v1.0 v1.0.0\n# \u4ece\u6807\u7b7e\u521b\u5efa\u65b0\u5206\u652f\u8fdb\u884c\u95ee\u9898\u4fee\u590d\n<\/pre><\/div>\n\n\n<h4 class=\"wp-block-heading\">\u6807\u7b7e\u91cd\u547d\u540d<\/h4>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\ngit tag new-tag old-tag       # \u91cd\u547d\u540d\u672c\u5730\u6807\u7b7e\ngit push origin :refs\/tags\/old-tag  # \u5220\u9664\u65e7\u8fdc\u7a0b\u6807\u7b7e\ngit push origin new-tag       # \u63a8\u9001\u65b0\u6807\u7b7e\n<\/pre><\/div>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\u4e09\u3001\u5e94\u7528\u573a\u666f<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">1. \u7248\u672c\u53d1\u5e03\u7ba1\u7406<\/h3>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\ngit tag -a v2.3.0 -m &quot;2024\u5e74\u5ea6\u5927\u7248\u672c\u53d1\u5e03&quot;\ngit push origin v2.3.0\n<\/pre><\/div>\n\n\n<ul class=\"wp-block-list\">\n<li>\u56e2\u961f\u6210\u5458\u53ef\u901a\u8fc7 <code>git checkout v2.3.0<\/code> \u5feb\u901f\u83b7\u53d6\u53d1\u5e03\u7248\u672c<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">2. \u91cc\u7a0b\u7891\u6807\u8bb0<\/h3>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\ngit tag -a milestone-login-module -m &quot;\u767b\u5f55\u6a21\u5757\u5f00\u53d1\u5b8c\u6210&quot;\n<\/pre><\/div>\n\n\n<h3 class=\"wp-block-heading\">3. CI\/CD \u96c6\u6210<\/h3>\n\n\n\n<p>\u5728 GitHub Actions \u4e2d\u914d\u7f6e\uff1a<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\njobs:\n  build:\n    if: startsWith(github.ref, &#039;refs\/tags\/v&#039;)\n    steps:\n      - run: .\/build.sh\n<\/pre><\/div>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\u56db\u3001\u6700\u4f73\u5b9e\u8df5<\/h2>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\u200b<strong>\u200b\u8bed\u4e49\u5316\u7248\u672c\u200b<\/strong>\u200b\uff1a\u9075\u5faa <code>\u4e3b\u7248\u672c.\u6b21\u7248\u672c.\u4fee\u8ba2\u53f7<\/code> \u89c4\u8303\uff08\u5982 v1.2.3\uff09<\/li>\n\n\n\n<li>\u200b<strong>\u200b\u9644\u6ce8\u6807\u7b7e\u4f18\u5148\u200b<\/strong>\u200b\uff1a\u91cd\u8981\u7248\u672c\u52a1\u5fc5\u6dfb\u52a0\u63cf\u8ff0\u4fe1\u606f<\/li>\n\n\n\n<li>\u200b<strong>\u200b\u5b9a\u671f\u6e05\u7406\u200b<\/strong>\u200b\uff1a <code>git tag -l \"old-*\" | xargs git tag -d git push origin --tags --prune<\/code><\/li>\n\n\n\n<li>\u200b<strong>\u200b\u56e2\u961f\u534f\u4f5c\u89c4\u8303\u200b<\/strong>\u200b\uff1a\n<ul class=\"wp-block-list\">\n<li>\u53d1\u5e03\u524d\u540c\u6b65\u6807\u7b7e\uff1a<code>git fetch --tags<\/code><\/li>\n\n\n\n<li>\u5220\u9664\u8fdc\u7a0b\u6807\u7b7e\u9700\u901a\u77e5\u56e2\u961f\u6210\u5458<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\u4e94\u3001\u5e38\u89c1\u95ee\u9898<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Q1\uff1a\u6807\u7b7e\u80fd\u5426\u4fee\u6539\uff1f<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u200b<strong>\u200b\u8f7b\u91cf\u6807\u7b7e\u200b<\/strong>\u200b\uff1a\u53ef\u8986\u76d6\uff08<code>git tag -f<\/code>\uff09<\/li>\n\n\n\n<li>\u200b<strong>\u200b\u9644\u6ce8\u6807\u7b7e\u200b<\/strong>\u200b\uff1a\u9700\u5148\u5220\u9664\u518d\u91cd\u65b0\u521b\u5efa<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Q2\uff1a\u5982\u4f55\u9a8c\u8bc1\u7b7e\u540d\u6807\u7b7e\uff1f<\/h3>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\ngit tag -v v1.0.0\n# \u9700\u5b89\u88c5 GPG \u5e76\u914d\u7f6e\u5bc6\u94a5\n<\/pre><\/div>\n\n\n<h3 class=\"wp-block-heading\">Q3\uff1a\u6807\u7b7e\u4f1a\u5360\u7528\u5b58\u50a8\u7a7a\u95f4\u5417\uff1f<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u9644\u6ce8\u6807\u7b7e\u4f1a\u5b58\u50a8\u5143\u6570\u636e\uff0c\u4f46\u5360\u7528\u7a7a\u95f4\u6781\u5c0f\uff08\u7ea6 1KB\/\u6807\u7b7e\uff09<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\"><\/h2>\n","protected":false},"excerpt":{"rendered":"<p>Git Tag \u8be6\u89e3\uff1a\u7248\u672c\u7ba1\u7406\u7684\u9ec4\u91d1\u6807\u8bb0 \u4e00\u3001Git Tag \u662f\u4ec0\u4e48\uff1f Git Tag \u662f Git \u63d0\u4f9b\u7684\u7248\u672c [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":1004,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[127],"tags":[149],"class_list":["post-1074","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-ci-cd","tag-git"],"_links":{"self":[{"href":"https:\/\/beijian99.top\/index.php?rest_route=\/wp\/v2\/posts\/1074","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/beijian99.top\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/beijian99.top\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/beijian99.top\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/beijian99.top\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1074"}],"version-history":[{"count":2,"href":"https:\/\/beijian99.top\/index.php?rest_route=\/wp\/v2\/posts\/1074\/revisions"}],"predecessor-version":[{"id":1076,"href":"https:\/\/beijian99.top\/index.php?rest_route=\/wp\/v2\/posts\/1074\/revisions\/1076"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/beijian99.top\/index.php?rest_route=\/wp\/v2\/media\/1004"}],"wp:attachment":[{"href":"https:\/\/beijian99.top\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1074"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/beijian99.top\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1074"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/beijian99.top\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1074"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}