使用 git tag 给项目打标签

随着开发的深入,一些开发的规范也在慢慢落实。对项目的每个版本打上标签就是其中很重要的一项,下面说一下打标签的一些常规操作。

使用命令行提示

使用命令行提示查看 tag 相关命令行:

$ git tag -h

创建标签

# 通过 git tag <tagname> 创建一个标签:
$ git tag v1.0.0  # 默认标签是打在最新提交的commit上的。

# 对特定的commit id对项目打标签
$ git tag v1.0.8 ba9f9e  # 如果想给历史commit 打上标签,只需在后面加上 commit id 即可。

上传标签

git push 并不会将 tag 推送到远程仓库服务器上,在创建完 tag 后我们需要手动推送 tag。

# 推送单个 tag:
$ git push origin v1.0.8

# 一次推送所有本地 tag:
$ git push origin --tags

查看标签

# 查看标签列表
$ git tag

# 查看最近n行信息
$ git tag -n3 # 这时候可以用查看最近3行的 tag 信息

# 列出相关标签 
$ git tag -l "v1.0*" # 查看 1.0.x 版本的tag,等同于 git tag --list

# 查看标签详细信息
$ git show v1.0.8  # 命令查看标签详细信息

删除标签

先删除本地仓库上的标签,然后更新到远程仓库

# git tag -d <tagname> 删除本地仓库的标签
$ git tag -d v1.0.9   # 删除本地仓库的v1.0.9标签

# 然后用 git push <remote> :refs/tags/<tagname> 更新远程仓库:
$ git push origin :refs/tags/v1.0.9

或者先删除远程标签,然后同步到本地

# git push origin --delete <tagname> 删除远程标签
$ git push origin --delete v1.0.7

# 将远程标签同步到本地
$ git fetch --prune --prune-tags    
注意: git fetch --prune --prune-tags 会强制同步远程 tag 到本地,所以会导致本地新建的未提交到远程服务器的 tag 也会被删除。

给标签添加信息

上文提到的创建标签属于创建轻量标签,可以在创建标签时通过-m <message>添加附加信息:

$ git tag v2.0.0 -m "version 2.0.0 released"  # 添加附加信息
$ git tag v2.0.0 -m "version 2.0.0 released" -m "rebuild with react hooks" -m "support typescript"    # 添加多行信息

如果想要编辑已有tag信息,除了删除这个tag重新打tag之外还可以用git tag <tagname> <tagname>^{} -f -m "<new message>" 修改 tag 信息

$ git tag v1.0.0 v1.0.0^{} -f -m "first commit"

此时如果线上已经存在这个tag,修改后想将它推送到远程代码仓库需要加 -f 强制推送

$ git push origin -f v1.0.0
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
GitLab中,Pipeline是一个自动化流水线,它允许你在每次代码提交后自动执行一系列任务,包括构建、测试、部署等。如果你想使用Pipeline来打tag发布版本,你可以按照以下步骤操作: 1. **创建Pipeline**: 在项目的 `.gitlab-ci.yml` 或者 GitLab UI 中配置一个的 Pipeline 阶段,比如 `tag_and_deploy`,这通常包含 `tag` 和 `deploy` 两个步骤。 ```yaml stages: - build - tag_and_deploy build_and_test: stage: build # ... 填写构建和测试脚本 tag_release: stage: tag_and_deploy when: on_success script: - git config --global user.email "ci@yourdomain.com" - git fetch --tags - git checkout -b release_branch_name origin/main - git add . - git commit -m "Automated release ${CI_COMMIT_TAG}" - git tag -a ${CI_COMMIT_TAG} -m "Release ${CI_COMMIT_TAG}" - git push --set-upstream origin release_branch_name - git push --tags deploy_production: stage: tag_and_deploy when: on_success script: - # 这里填写部署到生产环境的命令,比如使用Docker push、Ansible playbook等 ``` 2. **触发条件**: `when: on_success` 表示只有当 `build_and_test` 阶段成功完成后才会执行 `tag_release` 阶段。你可以根据需求调整这个条件。 3. **版本命名**: 在 `tag_release` 中,`${CI_COMMIT_TAG}` 是由GitLab CI/CD自动获取的当前提交的标签或分支名。如果希望自定义版本号格式,可以替换为相应的变量或逻辑。 4. **部署流程**: 在 `deploy_production` 阶段,你需要编写相应的命令来将tag部署到目标生产环境。这可能包括构建Docker镜像、更服务器配置、部署应用程序等操作。 记得保存 `.gitlab-ci.yml` 文件并推送更改,这样每次代码合并到主分支时,Pipeline就会自动运行,并创建tag并部署到指定环境。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值